Java String 類
字符串廣泛應(yīng)用 在 Java 編程中,在 Java 中字符串屬于對(duì)象,Java 提供了 String 類來創(chuàng)建和操作字符串。
字符串的創(chuàng)建
-
創(chuàng)建字符串最簡(jiǎn)單的方式
String str = "hello";
注意:String創(chuàng)建的是不可變字符串,一旦創(chuàng)建,內(nèi)容不能發(fā)生改變
如果需要對(duì)字符串做很多修改,那么應(yīng)該選擇使用 StringBuffer & StringBuilder 類。
String str = new String();
-
使用構(gòu)造方法創(chuàng)建字符串
-
提供一個(gè)字符數(shù)組參數(shù):
-
char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
String helloString = new String(helloArray);
System.out.println( helloString );
-
使用字節(jié)數(shù)組 創(chuàng)建一個(gè)字符串
- 如果存放的是整型數(shù)字,會(huì)轉(zhuǎn)化為對(duì)應(yīng)ASCII碼的字符
//使用字節(jié)數(shù)組 創(chuàng)建一個(gè)字符串
byte[] name = {'a','b','c'};
String str4 = new String(name);
System.out.println(str4);
byte[] name2 = {97,98,99};
String str5 = new String(name2);
System.out.println(str4);
//使用字節(jié)數(shù)組里面的一部分 創(chuàng)建一個(gè)新的數(shù)組
String str6 = new String(name,0,2);
System.out.println(str6);
char[] hello = {'你','好','啊'};
String h = new String(hello);
System.out.println(h);
字符串常用方法
下面是 String 類支持的方法,更多詳細(xì),參看 Java String API 文檔:
-
獲取字符串中的一個(gè)字符 char charAt(int index)
String h = "hello";
char c = h.indexOf(2);
System.out.println(c);
-
獲取字符串的長(zhǎng)度
String site = "www.baidu.com";
int len = site.length();
System.out.println( "百度網(wǎng)址長(zhǎng)度 : " + len );
-
== 與equals()辨析
- == 比較兩個(gè)對(duì)象是否相同:地址
- equals 比較內(nèi)容是否相同
//如果str1 與str 2 內(nèi)容相同 ,則兩者地址相同
String str1 = "abc";
String str2 = "abcd";
System.out.println(str1 == str2); //false
System.out.println(str1.equals(str2)); //false
-
連接兩個(gè)字符串,返回值為一個(gè)新的字符串
使用:string1.concat(string2);
String nStr = str5.concat(h);
System.out.println(nStr);
-
兩個(gè)字符串的比較 int compareTo(String anotherString)
- 通過返回值可以知道大小關(guān)系,如果返回值=0,則str1 = str2;如果返回值>0,則str1 > str2;如果返回值< 0,則str1 < str2.
-
int compareToIgnoreCase(String str) 忽略大小寫
int result = str4.compareToIgnoreCase(str5);
System.out.println(result);
-
判斷一個(gè)字符串是否包含另外一個(gè)字符串 contains
boolean ressult = "hello,world".contains("world");
System.out.println(ressult);
-
判斷是否以某個(gè)字符串結(jié)尾,結(jié)尾,第幾個(gè)字符開始以什么開始
String url = "http://www.baidu.com";
if (url.endsWith(".com")){
System.out.println("網(wǎng)址");
}
if (url.startsWith("http")){
System.out.println("http協(xié)議");
}
if (url.startsWith("www",7)){
System.out.println("萬維網(wǎng)");
}
-
獲取一個(gè)子字符串在另外一個(gè)字符串里面的位置,如果不存在 返回值為-1.
String string = "hello Java";
int index = string.indexOf("Java");
System.out.println(index);
-
獲取子字符串
-
substring 從index到結(jié)尾
-
String sStr = string.substring(6);
System.out.println(sStr);
-
獲取索引值從i到j(luò)的字符串
String sStr2 = string.substring(4,7);
System.out.println(sStr2);
-
將字符串轉(zhuǎn)化為字符數(shù)組 char[] toCharArray()
-
將所有字符轉(zhuǎn)化為小寫 String toLowerCase()
-
將所有字符轉(zhuǎn)化為大寫 String toUpperCase()
-
將字符串前面和后面的空格字符刪除String trim()
想了解更詳細(xì)的用法:https://www.runoob.com/java/java-string.html
StringBuffer 和 StringBuilder類(可變字符串)
| 類型 | StringBuffer類 | StringBuilder類 |
|---|---|---|
| 線程 | 線程安全 | 線程不安全 |
| 效率 | 效率不高 | 效率更高 |
方法:insert append delete replace
- append 在末尾追加
// 創(chuàng)建的同時(shí)先準(zhǔn)備好6個(gè)字符的空間
StringBuffer sBuffer = new StringBuffer(6);
sBuffer.append("I ");
sBuffer.append("love ");
sBuffer.append("Java");
System.out.println(sBuffer);
- 插入數(shù)據(jù) insert
sBuffer.insert(2, "also ");
System.out.println(sBuffer);
- 刪除 delete
sb.delete(2,6);
System.out.println(sb);
- 替換 replace
// start end string
int start = sBuffer.indexOf("Android");
int end = start + "Android".length();
sb.replace(start,end,"you!!!");
System.out.println(sBuffer);
- 反轉(zhuǎn) reverse
sb.reverse();
System.out.println(sb);
輸出結(jié)果:
輸出結(jié)果
心得體會(huì):
??要提高自己的學(xué)習(xí)能力,如何快速地了解一個(gè)類里面的方法,并且學(xué)會(huì)運(yùn)用。