常用API(一)
1.Scanner類 (Scanner類是在java.util包下的,需要導包,而在java.lang包下,如String則不用導包)
1.1Scanner類是java里面已經創建的類,里面已經有了多個成員方法。
使用步驟: 1.導包:
import 包路徑.類名稱
2.創建對象:
類 對象 = new 類();
3.使用:
總結: 我們在鍵盤輸入的其實都是字符串在Scanner用 in.nextInt方法將字符串"32’轉化為32
1.2 Scanner練習:比較三個數大小
Scanner in=new Scanner(System.in);//System.in等于從鍵盤輸入。System.out.println("請輸入第一個數字:");int a=in.nextInt();System.out.println("請輸入第一個數字:");int b=in.nextInt();System.out.println("請輸入第一個數字:");int c=in.nextInt();int max=a>b? a:b;int max1=max>c ?max:c;System.out.println("最大的數字為:"+max1);2.匿名對象:
我們知道:在調用類的成員變量和成員方法時,都要創建一個對象。但是,如果有一個對象只使用唯一的一次就可以使用匿名對象。
匿名對象只有右邊的對象,沒有左邊的數字和賦值運算符。
常規: person a=new person();
匿名 : new person();
2.1 匿名對象作為方法的參數和返回值都是可以的。
package Scanner.Scanner1;import java.util.Scanner;public class Anoymousduixiang {public static void showint(Scanner in){int number =in.nextInt();System.out.println(number);}public static void main(String[] args) {// TODO Auto-generated method stub//正常使用ScannerScanner in=new Scanner(System.in);int a=in.nextInt();//匿名對象int b=new Scanner(System.in).nextInt();//使用一般方法傳遞參數// Scanner in=new Scanne(System.in);showint(in);//使用匿名對象來傳參showint(new Scanner(System.in));//用匿名對象調用成員方法**//**將方法的參數作為返回值Scanner sc=methodreturn(); //sc得到了Scanner 類的地址值,就可以調用Scannner類的成員方法。int numbers=sc.nextInt();System.out.println(numbers+" 111");}/* **方法 */public static Scanner methodreturn(){Scanner in=new Scanner(System.in);return in;} }由此可以知道,對象能調用類里面的成員方法和成員變量有兩種創建方式
如:
3 random類的運用
1.導包:
import 包路徑.類名稱
2.創建對象:
類 對象 = new 類();
3.使用:
練習:猜數游戲:
Scanner in=new Scanner(System.in);//猜數游戲:int numbers=new Random().nextInt(100)+1;int x=in.nextInt();while(true) { if(x>numbers){System.out.println("猜大了,范圍再小一點");}else if(x<numbers){System.out.println("猜小了,范圍再大一點");}else{System.out.println("恭喜你,猜對了!");break;}x=in.nextInt();}4.對象數組和ArrayList
4.1.1 數組對象的創建
跟數組一樣
類 [ ] 對象=new 類[ 長度];
下面是使用
package Scanner.Scanner1;class person{private String name;private int age;person(String name,int age){this.age=age;this.name=name;}public void setAge(int age){this.age=age;}public int getAge(){return age;}public void setName(String name){this.name=name;}public String getName(){return name;}} public class Arrayrist {public static void main(String[] args) {person []array=new person[3];person one =new person("古力娜扎",20);person two =new person("迪麗熱巴",20);person thr =new person("馬爾扎哈",500);array[0]=one; //地址值array[1]=two; //地址值array[2]=thr; //地址值System.out.println(array[2].getAge());}}4.2.1. ArrayList ,E>> 泛型
泛型 就是集合中的所有元素,全部都是統一的什么類型。
泛型只能是引用類型,不能是基本類型。
1.導包 import java.util
2.創建 類 對象 =new 類();
3.使用:
4.3.1 創建和添加
import java.util.ArrayList; public class ArrayList1 {public static void main(String[] args) {//備注:jdk1.7開始 右邊<>可以不寫內容,但是做左邊必須要寫// 創建了一個ArratList 集合,集合的名稱是List,里面裝的全都是String字符串類型的數據。ArrayList <String>list=new ArrayList<>();//輸出一下 list 按理說得到一個地址值System.out.println(list);//得到了[]/*注意事項:對于Arraylist數組中,直接打印的不是地址值,而是內容。如果內容為空,則得到的是一個中括號[]*///向集合中添加一些數據,需要用到add方法list.add("迪麗熱巴");list.add("古力娜扎");list.add("阿巴阿巴");System.out.println(list);//添加進去的元素都必須是字符串} }4.3.2
ArrayList常用方法:
public boolean add(E e)
向集合中添加元素,參數的類型和泛型是一致的。(返回值表示添加是否成功)對于ArrayList集合來說add添加動作是一定成功
的,所以可用可不用,但是其他集合不一定成功。
4.3.3
泛型只能是引用類型,不能是基本類型 int double
如果要ArrayList集合中儲存基本數據類型,就要用基本類型對應的 包裝類
import java.util.ArrayList; public class demoarrast {public static void main(String[] args) {ArrayList<Integer> list =new ArrayList<>();list.add(100);list.add(200);System.out.println(list.get(1));} }byte Byte
short Short
long Long
float Float
double Double
boolean Boolean
這兩個比較特殊
int Integer
char Character
//JDK1.5+ 知道這么個概念
自動裝箱:基本類型—>引用類型
自動拆箱:引用類型—>基本類型
4.3.3.1下面是一些習題
1.生成6個1-33之間的隨機整數,添加到集合,并且遍歷集合
import com.sun.jdi.PathSearchingVirtualMachine;import java.util.ArrayList; import java.util.Random;public class demoarrast {public static void main(String[] args) {ArrayList<Integer> list =new ArrayList<>();list.add(100);list.add(200);System.out.println(list.get(1));//生成6個1-33之間的隨機整數,添加到集合,并且遍歷集合。ArrayList<Integer> num=new ArrayList<>();for (int i = 0; i < 6; i++){num.add(new Random().nextInt(33)+1);System.out.println(num.get(i));}for (int i = 0; i < list.size(); i++){System.out.println(num.get(i));}} }2.自定義4個學生對象,并且添加到集合,并且遍歷
import java.util.ArrayList;class Student { private int age;private String name;Student(String name,int age){this.age=age;this.name=name;}Student(){}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}Student(String who){System.out.println("我是"+who);} }public class Arraylistpe {public static void main(String[] args) {//自定義4個學生對象,并且添加到集合,并且遍歷Student a=new Student("小明",15);Student b=new Student("小方",15);Student c=new Student("小胖",15);Student d=new Student("小朱",16);ArrayList<Student> lt=new ArrayList<>();lt.add(a);lt.add(b);lt.add(c);lt.add(d);for (int i = 0; i < lt.size(); i++){System.out.println("name:"+lt.get(i).getName()+"age:"+lt.get(i).getAge());}} }String類
java.lang.String類代表字符串
API上說Java 程序中的所有字符串字面值(如 “abc” )都作為此類的實例實現,
其實是說,程序當中的所有雙引號字符串,都是String類的對象(即便沒有new一個對象出來,也照樣是)
- 2 因為字符串內容不可改變,所以字符串是可以共享使用的。3.字符串效果上相當于是char[]字符數組,但是,底層原理是byte[]字節數組創建字符串的3+1種方式第一種,創建一個空白的字符串,不會有任何內容。public String();*///使用空參構造:String str =new String();System.out.println("第一個字符串為:"+str);第二種 根據字符數組的內容,來創建對應的字符串。public String(char [] array)*///根據字符數組來創建字符串char[] charArray={'A','B','C'};String str2=new String(charArray);System.out.println(str2);第三種 根據字節數組的內容,來創建對應的字符串public String(byte [] array)*///根據字節數組創建字符串byte[] byteArray={97,98,99};String str3=new String(byteArray);System.out.println("第三個字符串"+str3);第四種 直接創建:String str4="Hello";System.out.println(str4);5.1字符串常量池:程序中寫上的雙引號字符串,就在字符串常量池當中。
注意:
對于基本類型來說,是進行數值的比較
對于引用類型來說,是進行*地址值的比較(并且引用類型都可以賦一個null值,可以是無地址)
雙引號直接寫的字符串在常量池當中,new的不在其中
當我們直接用String 一個字符串,這個字符串的地址就是字符串常量池,而當我們用(基本類型)char[ ] byte[ ]去創建字符串的時候就不在常量池里面,但無論是哪一種創建方式,字符串的底層都是byte[ ]字節數組
PS:數組和對象都是在棧里面的
5.2字符串內容比較
下面的這些方法都是可以用 String的對象.方法 和 " 字符串".方法
5.2.1.public boolean equals(object obj)
==是進行對象地址值的比較,而字符串內容比較可以使用這兩種方法。
public boolean equals(Object obj); 參數可以是任何對象,只有參數是一個字符串并且內容相同才給true,否則返回一個false值
5.2.2 public boolean equalsignorecase(只有英文才要區分大小寫)
/*第二個 忽略大小寫,進行內容的比較(只有英文字母區分大小寫,其他都不區分大小寫)public boolean equalsIgnore(String str)*/String str2="NVDIA";System.out.println("nvdia".equalsIgnoreCase(str2)); //true5.3 字符串的常用方法
1.public int length() 獲取字符串中字符串的個數,也就是 長度.
2.public String concat(String str) 將當前字符串和參數字符串拼接成新的字符串,并且返回新的字符串
3.public char charAt(int index) 獲取指定索引位置的的單個字符。(索引是從0開始的)
4.public int indexof(String str) 查找參數字符串在本字符中首次出現的索引位置,如果沒有 返回—1值
// 1.public int length() 獲取字符串中字符串的個數,也就是 長度int length = "dasdjal".length();System.out.println("字符串的長度是"+length); //字符串的長度是7// * 2.public String concat(String str) 將當前字符串和參數字符串拼接成新的字符串,并且返回新的字符串String str="HEllo";String str1="world";System.out.println(str.concat(str1)); //HElloworld // * 3.public char charAt(int index) 獲取指定索引位置的的單個字符。(索引是從0開始的)char ch = "Hello".charAt(1);System.out.println("位于1號索引位置的字符是"+ch); // 位于0號索引位置的字符是e // * 4.public int indexof(String str) 查找參數字符串在本字符中首次出現的索引位置,如果沒有 返回—1值String Original ="Helloworld";int llo = Original.indexOf("llo");System.out.println("第一次索引值"+llo); //第一次索引值 2//如果沒有就會返回一個-1值String Original2 ="Helloworld";int abc = Original2.indexOf("abc");System.out.println("第一次的索引值是"+abc); //第一次的索引值是-15.4//字符串的獲取辦法
1 . public String subString)(int dex) 從參數的位置一直截到字符串末尾,返回新字符串(包括那個參數)
2.public String subString(int begin,int end); //左閉右開區間,截取從begin開始,一直到end結束中間的字符串
//字符串的獲取辦法//1.public String subString)(int dex) 從參數的位置一直截到字符串末尾,返回新字符串(包括那個參數)String str= "ashdjkasdajksdhak";System.out.println(str.substring(5)); //kasdajksdhakSystem.out.println("ashdjkasdajksdhak".substring(5)); //kasdajksdhak// 2.public String subString(int begin,int end); //左閉右開區間,截取從begin開始,一直到end結束中間的字符串String str1="hdakshdkadalksksjflak";System.out.println(str1.substring(0,1)+1); //ashdjkasdajksdhakSystem.out.println(str); //str字符串沒有改變 //ashdjkasdajksdhak//我現在要取一個fau出來String str2="dasfauifhia";System.out.println(str2.substring(3,6)); //fau5.5
字符串轉換的相關方法
1.將字符串拆分成為字符數組并且將字符數組作為返回值
2.獲得當前字符串底層的字節數組
3.將所有的老字符串替換成新的字符串,返回替換之后的結果新字符串
//1.將字符串拆分成為字符數組并且將字符數組作為返回值//public char[] tocharArray();String str = "jsdhaksdh";char[] chars = str.toCharArray();System.out.println(chars.length); //9System.out.println(chars[0]); //j//2.獲得當前字符串底層的字節數組//public byte[] getBytes();byte[] bytes = "jsdhaksdh".getBytes();System.out.println(bytes.length); //for (int i = 0; i < bytes.length; i++) {System.out.println(bytes[i]);}//3.將所有的老字符串替換成新的字符串,返回替換之后的結果新字符串//public String replace (CharSequence oldString,CharSequence new String)CharSequence charSequences = "jsdhaksdh".replace("jsdhaksdh","dsadasdas");System.out.println(charSequences); //dsadasdas//例子1String str2="How are you?";String str3 = str2.replace("o", "*");System.out.println(str3); //H*w are y*u?System.out.println(str2); //How are you? 原來的字符串沒有變System.out.println(str3); //H*w are y*u?//例子2 我們打游戲的時候不噴人String str4="你大爺的";String str5 = str4.replace("你大爺的", "****");System.out.println(str4); //你大爺的System.out.println(str5); //****5.6 分割字符串的方法
public String[] split(String regex) 按照參數的規則,將字符串切分成若干部分。
注意事項:
1.split表達式其實是一個正則表達式,今后學習。
2.有一些特殊的". ^ |“進行區分要寫成”\"
3. 如果要保證一定,無論是什么符號只要寫成\ xxx就可以了。
5.7具體的練習題
1.定義一個方法,把數組[ 1 2 3] 按照指定的格式拼接成一個字符串 ,格式參數如下[word1#word2#word3]
public static String Spellingarray(int [] array){String a="[";for (int i = 0; i < array.length; i++) {if(i == array.length - 1){a += "word" + array[i] + "#" + "]";}else{a+="word"+array[i]+"#";}}return a;}public static void main(String[] args) { //定義一個方法,把數組[ 1 2 3] 按照指定的格式拼接成一個字符串 ,格式參數如下[word1#word2#word3]int []array={1,2,3};System.out.println(Spellingarray(array ));//結果是:[word1#word2#word3#]}2.題目:統計輸入的字符串
import java.util.Scanner; //題目:統計輸入的字符串。 public class demo1 {// 統計輸入的字符串。// 種類有 大小寫字母,數字和其他/* 1.定義四個變量,分別代表四個字符出現的速度。2.需要對字符串一個個的檢查,所以要用到方法tocharArray()3.遍歷char[]字符數組,對當前字符的種類進行判斷*/public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.println("請輸入一個字符串");String input=in.next(); //計數器int countUpper= 0;int countnumber= 0;int countlower= 0;int countother= 0; // 字符串轉化為字符數組char array[]=input.toCharArray(); //開始判斷字符串的類型for (int i = 0; i < array.length; i++) {//小寫字母if (array[i]>='a'&&array[i]<='z'){countlower++;}else if(array[i]>='A'&&array[i]<='Z'){countUpper++;}else if (array[i]>='0'&&array[i]<='9'){countnumber++;}else{countother++;}}System.out.println(countlower);System.out.println(countUpper);System.out.println(countnumber);System.out.println(countnumber);//輸入asdasKHSDGHAK**//-/*468786//輸出asdasKHSDGHAK**//-/*468786//5//8//6//7} }總結
- 上一篇: 中国石油大学(北京)-《思想道德修养与法
- 下一篇: 6-29 水上飞机(*) (20分)多重