String類
注意:字符串是必須放在雙引號內的,char類型的放在單引號內。
"23.23" "ABCDF" "你好"
一、創建字符串
- 直接聲明方式
String str;
- 創建字符串對象(使用構造方法)的方式
Sring(char a[],int offset,int length); //參數分別爲爲字符串數組、開始截取位置、截取長度,如下:
char a[] = {'a','b','c','d'};
<!--一個參數時-->
String s = new String(a);//等價於下面的
String s = new String("abcd");
<!--多個參數時-->
char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a,2,4);//等價於下面的
String s = new String("uden");
二、連接字符串
- 使用加號+(同js語法),連接其他數據類型時會自動調用toString()方法。可以使用()改變運算優先級從而進行先數據運算,後拼接,如下:
public class Stringprt {
public static void main(String[] args) {
int i = 10;
float f = 12.1f;
System.out.println("兩個數相加的和爲"+(i+f));//22.1
}
}
三、字符串包裝對象常用獲取字符串信息方法
- 獲取字符串的長度採用str.length()方法
- 字符串查找採用str.indexOf(substr)和str.lastIndexOf(substr)方法。分別代表字串第一次出現的位置和最後一次出現的位置
- 通過索引查找字符,用str.charAt(int index)方法
public class getStringInfo {
public static void main(String[] args) {
String str = "abcdef";
System.out.println(str.length()); //6
System.out.println(str.indexOf("ab")); //0
System.out.println(str.lastIndexOf("ef")); //4
System.out.println(str.charAt(0)); //a
}
}
四、字符串操作常用方法
- 獲取子串方法,str.substring(),一個參數時傳入的是開始截取的位置,返回的字串從開始位置一直到結束,兩個參數時,第一個是開始位置,第二個是結束位置。注意截取區間是左閉右開的。
public class Substringprt {
public static void main(String[] args) {
String str = new String("123456789");
String substr1 = str.substring(1);
String substr2 = str.substring(0,2); //因爲左閉右開,所以取不到2位置上的3
System.out.println(substr1);//"23456789"
System.out.println(substr2);//"12"
}
}
- 去除首尾空格方法,str.trim()
public class Deletspace {
public static void main(String[] args) {
String str = new String(" 1 2 3 ");
String str1 = str.trim();
System.out.println(str.length()); //10
System.out.println(str1.length()); //5
}
}
- 字符串替換str.replace(char oldChar,char newChar),注意是全部替換(與js不同),返回一個新字符串。
- 是否以某字符串開始或結束分別爲str.startsWith(String prefix)和str.endsWith(String suffix),返回一個新字符串
- 判斷字符串是否相等,不能用==,因爲都是對象,在堆內存裏引用地址不一樣。要用str.equals(String otherstr)或者equalsIgnoreCase(String otherstr),前者區分大小寫,後者不區分。
public class Stringmethods {
public static void main(String[] args) {
String str1 = new String("abAbabAb");
String str2 = new String("abAbabAb");
String str3 = new String("abAbAbAb");
String str4 = str1.replace('b','a'); //替換操作
boolean flag = (str1==str2); //判斷兩個對象是否相等
boolean flag1 = str1.equals(str2); //區分大小寫判斷是否相等
boolean flag2 = str1.equalsIgnoreCase(str3); //不區分大小寫判斷是否相等
boolean flag3 = str1.startsWith("ab"); //判斷是否以某子串開始
boolean flag4 = str1.endsWith("Ab"); //判斷是否以某字串結尾
System.out.println(str4); //aaAaaaAa
System.out.println(flag);//false
System.out.println(flag1);//true
System.out.println(flag2);//true
System.out.println(flag3);//true
System.out.println(flag4);//true
}
}
未完…