API概述 什麼叫做API? API(Application Programming lnterface),應用程式編程介面。 所謂API就是值好多的類,好多的方法,JDK給我們提供了很多現成的類,我們可以直接去使用,這些類就是API "API官方文檔" 常見的幾個API之Scanner類的使用 1 ...
API概述
什麼叫做API?
API(Application Programming lnterface),應用程式編程介面。
所謂API就是值好多的類,好多的方法,JDK給我們提供了很多現成的類,我們可以直接去使用,這些類就是API
常見的幾個API之Scanner類的使用
-
導包
Scanner類因為存在於java.lang包下,所有不需要導入就可以直接使用
-
創建
類名稱 對象名 = new 類名稱();
-
使用
對象名.方法名();
public class AScanner{
public static void main(String[] args){
System.out.println("請輸入一個數字")
//System.in代表從鍵盤進行輸入
Scanner sc = new Scanner(System.in);
//調用Scanner的方法,獲取一個整數
int num = sc.nextInt();
System.out.println("數字"+num);
}
}
Scanner的練習題
import java.util.Scanner;
public class MaxInput {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("請輸入第一個數字");
int a = sc.nextInt();
System.out.println("請輸入第二個數字");
int b = sc.nextInt();
System.out.println("請輸入第三個數字");
int c = sc.nextInt();
int max ;
if(a>b){
max = a;
}else{
max = b;
}
if(max>c){
System.out.println("最大值為"+max);
}else{
max = c;
System.out.println("最大值為"+max);
}
}
}
匿名對象
匿名對象就是只有右邊的對象,沒有左邊的名字和賦值運算符
匿名對象的格式:
new 類名稱();
匿名對象只能夠使用一次,下次再用不得不再創建一個新對象
每一次new都是一個新的對象,所以只能夠使用一次
public class Person{
String name;
public void showName(){
System.out.println("我叫"+name);
}
}
public class niming{
public static void main(String[] args){
Person one = new Person();
one.name =( "張飛");
one.showName();
new Person().name = "呂蒙";
new Person().showName(); //不能夠列印出呂蒙,每一次new都是一個新的對象
}
}
常見的幾個API之Random
public static void main(String[] args){
//創建對象
Random r = new Random();
//調用方法,隨機生成無範圍的一個整數
int i = r.nextInt();
System.out.println(i);
}
public static void main(String[] args){
Random r = new Random();
for(int j = 0;j<100;j++){
//隨機獲得一個0-9的數字,
int i = r.nextInt(10);
System.out.println(i);
}
}
練習--猜數字小游戲
思路
你要猜一個數字,必須要先把數字給確定下來,也就是在這裡,第一步要使用Random類來獲取一個隨機數
有了隨機數,就可以猜了,讓用戶輸入隨機數,就要使用到API中的Scanner類
用戶一般不可能一次猜中,所以就需要反覆猜,這裡就要用到while迴圈
猜一個數字有大了,小了,猜中了,三種結果,所以這裡可以使用選擇結構if語句
import java.util.Random;
import java.util.Scanner;
//變數名rn是隨機數的縮寫,sn,是鍵盤錄入數字的縮寫
public class aGame{
public static void main(String[] args) {
Random aRandom = new Random();
//獲得一個隨機整數
int rn = aRandom.nextInt(101);
// System.out.println(rn);//作弊大法
Scanner aScanner = new Scanner(System.in);
System.out.println("請輸入一個0-100之間的整數.....");
//用戶輸入的整數
boolean mark = true;
while (mark) {
int sn = aScanner.nextInt();
if (sn > rn) {
System.out.println("輸入的數字大了,請往小的方向猜吧");
} else if (sn < rn) {
System.out.println("輸入的數字小了,請往大的方向猜吧");
} else {
System.out.println("恭喜你,猜對啦");
mark = false;
}
}
System.out.println("游戲結束,感謝參與!!!!!!!!!!!!!!");
}
}
ArrayList集合
ArrayList記得的長度是可以改變的,
public static void main(String[] args){
//創建一個ArrayList集合,集合的名稱是list,裡面裝的全都是String字元串類型的數據
//備註:從JDK1.7版本後,右側的尖括弧內容可以不行
ArrayList<String> list = new ArrayList<>();
System.out.println(list);//將會列印[]里的內容,如果沒有內容,輸出結果為 []
//想集合當中添加數據,需要用到add方法;
list.add("趙雲");
System.out.println(list);
}
ArrayList集合的常用方法和遍歷
常用方法有:
-
public boolean add(E e);向集合當中添加元素,參數類型和泛型類型一致
-
public E get(int index);從集合中獲取元素,參數是索引編號,
-
public int size(),獲取集合的尺度長度,返回值是集合包含的元素個數
-
public E remove(int index),從集合中刪除元素,參數是索引編號,返回值是被刪除的元素
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//add方法的使用
list.add("賈詡");
list.add("周瑜");
list.add("郭嘉");
System.out.println(list);//[賈詡, 周瑜, 郭嘉]
//從集合中獲取元素,get方法,索引從0開始
String aname = list.get(2);
System.out.println(aname);//郭嘉
//從集合中刪除元素
list.remove(1);
System.out.println(list);//[賈詡, 郭嘉]
//獲取集合的長度
System.out.println(list.size());//2
list.add("諸葛亮");
//集合的遍歷
for(int i = 0;i<list.size();i++){
System.out.println(list.get(i));
}
}
ArrayList集合存儲基本數據類型
ArrayList集合是不能夠存儲基本類型的,如果要存儲基本類型,必須使用基本類型對應的包裝類
基本類型 | 包裝類 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
System.out.println(list);//[100, 200]
//自動拆箱,包裝類型變成基本類型
System.out.println(list.get(0));//100
}
從JDK 1.5開始,支持自動裝箱,自動拆箱
自動裝箱:基本類型 ----->包裝類型
自動拆箱:包裝類型 ------>基本類型
ArrayList集合的練習1
題目:生成6個1~33之間的隨機整數,添加到集合,並遍歷集合
我的解題思路:,
生成6個隨機的整數,就要用到Random類,
把生成的整數添加到集合,就要創建一個集合,
使用集合方法add來添加都集合,所以到這裡就會有aList.add(隨機數),這樣就把隨機數給添加到集合了,重覆添加可以使用for迴圈
接下來就是遍歷了
import java.util.ArrayList;
import java.util.Random;
public class AArray {
public static void main(String[] args) {
Random aRandom = new Random();
ArrayList<Integer> aList = new ArrayList<>();
for(int i=0;i < 6 ;i++){
aList.add(aRandom.nextInt(33)+1);
System.out.println(aList.get(i));
}
System.out.println(aList);
}
}
ArrayList練習二
題目:自定義四個學生對象,添加到集合,並遍歷
public class Student {
private int age;
private String name;
public Student(int age, String name) {
this.age = age;
this.name = name;
}
public Student() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
import java.util.ArrayList;
public class AStudent {
public static void main(String[] args) {
Student one = new Student(25,"貂蟬");
Student two = new Student(26,"西施");
Student three = new Student(27,"王昭君");
Student four = new Student(28,"楊玉環");
ArrayList<Student> arrayS = new ArrayList<>();
arrayS.add(one);
arrayS.add(two);
arrayS.add(three);
arrayS.add(four);
for (int i=0;i<arrayS.size();i++ ){
//使用get,獲取對象出來
Student stu = arrayS.get(i);
//使用對象名.方法名來獲取年齡和姓名,到這裡就遍歷結束
System.out.println("年齡"+stu.getAge()+"..."+"姓名"+stu.getName());
}
}
}
ArrayList集合練習三
題目:用一個大集合存入20個隨機數字,然後篩選其中的偶數元素,放到小集合中
import java.util.ArrayList;
import java.util.Random;
public class AArray {
//題目:用一個大集合存入20個隨機數字,然後篩選其中的偶數元素,放到小集合中
public static void main(String[] args) {
//大集合,存放20個隨機數字
ArrayList<Integer> big = new ArrayList<>();
//小集合,存偶數
ArrayList<Integer> small = new ArrayList<>();
Random r = new Random();
for(int i=0;i<20;i++) {
//向大集合添加隨機數,迴圈一次添加一個
big.add(r.nextInt(20));
}
System.out.println(big);
for(int i=0;i<big.size();i++) {
int num = big.get(i);
if(num%2==0) {
//向小集合添加偶數
small.add(num);
}
}
System.out.println(small);
}
}
字元串概述和特點
字元串的特點:
-
字元串的內容用不可變
-
正是因為字元串不可以改變,所以字元串是可以共用使用的
-
字元串效果上相當於是char[]字元數組,但是底層原理是byte[]位元組數組
字元串的構造方法和直接創建
public static void main(String[] args){
//使用空參構造
String str1 = new String();
System.out.println("第一個字元串"+str1);
//根據字元數組創建字元串
char[] charArray = {'A','B','C'};
String str2 = new String(charArray);
System.out.println("第二個字元串"+str2);
//根據位元組數組創建字元串
byte[] byteArray = {97,98,99};
String str3 = new String(byteArray);
System.out.println("第三個字元串"+str3);
//直接創建
String str4 = "Hello";
System.out.println("第四個"+str4);
}
字元串的常量池
字元串常量池,程式當中直接寫上的雙引號字元串,就在字元串常量池當中
對於基本類型來說 ==是進行數值的比較
對於引用類型來說 ==是進行地址的比較
public static void main(String[] args){
String str1 = "abc";//地址存在常量池中
String str2 = "abc";//地址存在常量池
char[] charArray = {'a','b','c'};
String str3 = new String(charArray);//地址不再常量池中
System.out.println(str1 == str2);//true
System.out.println(str1 == str3);//false
System.out.println(str2 == str3);//false
}
字元串比較的相關方法
public static void main(String[] args){
String str1 = "hello";
String str2 = "hello";
char[] charArray = {'h','e','l','l','o'};
String str3 = new String(charArray);
//equals比較的是兩個字元串的內容
System.out.println(str1.equals(str2));//true
System.out.println(str2.equals(str3));//true
System.out.println(str3.equals("hello"));//true
//忽略大小寫的比較方法equalsIgnoreCase
System.out.println(str3.equalsIgnoreCase("Hello"));//true
}
字元串的獲取相關方法
public static void main(String[] args){
//獲取字元串的長度;
int length = "wertrghgffdvscsegh".length();
System.out.println("字元串的長度是 "+length);
//拼接字元串
String str1= "hello";
String str2 = "world";
String str3 = str1.concat(str2);
System.out.println(str3);
//獲取指定索引位置的單個字元
char ch = "hello".charAt(1);
System.out.println("在1號索引位置的字元是"+ch);
//查找參數字元串在本來字元串當中出現的第一次索引位置
//如果沒有返回-1
String original = "helloworld";
int i =original.indexOf("llo");
System.out.println("第一次出現的索引位置是"+i);
}
字元串的轉換相關方法
public static void main(String[] args){
//把字元串轉換成字元數組
char[] chars = "原乘風破萬里浪".toCharArray();
for(int i=0;i<chars.length;i++) {
System.out.println(chars[i]);
}
//把字元串轉換成位元組數組
String str = "甘面壁讀是十年書";
byte[] bytes = str.getBytes();
for(int i=0;i<bytes.length;i++) {
System.out.println(bytes[i]);
}
//字元串的內容替換
String str3 = "風聲雨聲讀書聲聲聲入耳";
String str4 = str3.replace("聲", "sheng");
System.out.println(str4);
//字元串的切割方法,返回一個string[]
String[] str5 =str3.split("聲");
for(int i=0;i<str5.length;i++) {
System.out.println(str5[i]);
}
}