Object類
1,是定義在java.lang包下的類,是所有類的超類(父類),所有的類都直接或間接的繼承Object類。
父類:超類、根類、基類。
子類:派生類。
2,需要掌握的方法:
pulic String toString():傳回對象字元串的表示形式。
預設情況下的組合:類名的全路徑名稱+@+對象的哈希值無符号十六進制表示形式。
這種做法沒有意義,是以一般情況下重寫。
重寫做法:把所有成員變量組合成一個字元串傳回。
public boolean equals(Object obj):比較對象的位址值是否相同。
預設的情況下,是比較對象的位址值是否相同。
如果有需要,重寫Object類的方法,該怎麼重寫?
//重寫Object類
public booleanequals(Object obj){if(this==obj){returnture;
}if(!(obj instanceofStudent)){return false;
}
Student s=Student(obj);return this.name.equals(s.name)&&this.age==s.age;
}
如果多個成員變量,把多個比較用&&連接配接,
引用類型用equals()方法,
基本類型用==。
==與equals()的差別:
==:
可以比較基本類型,也可以比較引用類型。
比較基本類型,比較的是值是否相等。
比較引用類型,比較的是位址值是否相等。
equals():
隻能比較引用類型。
預設的情況下比較的是位址值是否相等。
如果需要比較内容,需要重寫Object類的equals()方法。
如下所示:
//==與equals()的差別
String s="hello";
String s1="hello";
String s2=new String("hello");
String s3="world";
Striing s4=new String("world")
String s5="helloworld";
System.out.println(s==s1); //true
System.out.println(s.equals(s1)); //true
System.out.println(s==s2); //false
System.out.println(s.equals(s2)); //true
System.out.println(s5==s+s3); //false
System.out.println(s5.equals(s+s3)); //true
System.out.println(s5.equals(s+s4)); //ture
System.out.println(s5=="hello"+"world"); //true
System.out.println(s5.equals("hello"+"world")) //true
1 //equals()陷阱
2
3 if(s.equals("world")){4 }5
6 if("world".equals(s)){7 }8
9 //假如s是一個外界傳遞值,如果給null,s就會NullPointerException10 //改善方案:把常量寫在前面,定義成為對象。
Scanner
1,Scanner是JDK5以後出現的功能, 友善從鍵盤接收資料的類。
2,Scanner的格式構造:
Scanner sc=new Scanner(System.in);
System.in是System類下面有一個靜态的成員變量in,它在類型是InputStream。代表的是标準鍵盤輸入流。
Scanner是對其封裝,提供了各種轉換功能。友善擷取各種需要的資料類型資料。
3,需要掌握的兩個功能:
a:傳回int類型
public int nextInt()
b:傳回String類型
public String nextLine()
注意事項:
兩個一起組合使用的時候 ,先用nextInt(),再用nextLine()會有問題。
解決方案:
1,重建立立Scanner對象。
2,把所有資料都輸入成String類型,再對其進行轉換。
String
1,由多個字元組成的一組資料。
2,構造方法:
//構造方法
1 String s=newString();2 String s=new String(byte[] bys);3 String s=new String(byte[] bys,int startIndex,intcount);4 String s=new String(char[] chs);5 String s=new String(char[] chs,int startIndex,intcount);6 String s=newString(String s2);7 String s="hello";
常使用的幾種:2、3、4、5、7。
3,字元串常見的功能:
1,判斷:
boolean equals(Object obj):比較字元串的内容是否相同。
boolean equalsIgnoreCse(String str):比較字元串的内容是否相同,不區分大小寫。
boolean contains(String str):判斷該字元串對象是否包含給定的字元串。
boolean startWith(String str):判斷該字元串對象是否以給定的字元串開頭。
boolean endWith(String str):判斷該字元串對象是否以給定的字元串結束。
boolean isEmpty(String str):判斷該字元串對象是否為空,是指的内容(””) 還是位址(null)?
//isEmpty 測試
String s="helloworld";
System.out.println(s.isEmpty());//false
System.out.println("".isEmpty()); //true
String s=null;
System.out.println(s.isEmpty());//java.lang.NullPointerException
2,擷取:
int length():傳回該字元串對象的長度。
char charAt():傳回指定索引的字元。
int indexOf(int ch):傳回指定字元第一次出現的索引位置。'A' 65
int indexOf(String str):傳回指定字元串第一次出現的索引位置。
int indexOf(int ch,int fromIndex):從指定索引位置開始,傳回指定字元第一次出現的索引位置。
String subString(int start):從指定索引位置開始截取字元串,包含指定索引位置本身。
String subString(int start,int end):從指定的索引位置開始截取字元串,到指定的索引位置結束截取字元串。包左不包右。
3,轉換:
byte getBytes():把字元串轉換成位元組數組。
char toCharArray():把字元串轉換成字元數組。
static String copyValueOf(char[] chs):把字元數組轉換成字元串。
static String valueOf(char[] chs):把字元數組轉換成字元串。
static String valueOf(int i ):把int類型的資料轉換成字元串。
String toLowerCase():把字元串轉換成小寫。
String toUpperCase():把字元串轉換成大寫。
String concat(String str):字元串的拼接。
4,其它:
String replace(char old,char new):把該字元串中的指定字元替換成新的指定字元。
String replace(String old,String new):把該字元串中的指字元串替換成新的指定字元串。
String split(String regex):把字元串按指定的标記分割成字元串數組。
//分割簡易示例
String ages="20-30-35-40";
String[] ageArray=ages.split("-");for(int i=0;i
System.out.println(ageArray[i]);
}-----------------------------------------------------
20
30
35
40
String trim():去掉字元串兩端的空格。
int compreTo(String str):按字典順序比較兩個字元串。
int compreToIngoreCase(String str):按字典順序比較兩個字元串,不區分大小寫。