Java與眾不同的字串-String類
首先,無論你學習什麼程式語言,是不是感覺都是從”Hello World!“開始寫起的,而Hello World!本身就是一個字串,從定義上來說就是字串就是由一個或者多個字元組成的有序數列,簡單來說就是一串字元,亦或者可以理解為就是一段text。
String物件的建立
字串的建立,分為兩種,一種是通過變數直接建立,另一種例項化物件,由於String本身就是一個物件,可以直接通過例項化物件的形式來建立。
第一種,通過變數的形式直接建立
String 變數名 = 字串;
String DataName = characterString
//通過變數的形式建立字串
String DataName = characterString
String str1 = "Hello World!";
System.out.print(str1);
第二種,通過例項化物件的形式來建立
String 物件名 = new String();
String objectName = new String();
//例項化物件
String objectName = new String();
String str2 = new String();
獲取字串的長度
獲取字串的長度的方法和獲取陣列長度無異,都是使用length()方法
//獲取字串長度
System.out.println(str1.length());
結果:
字串長度為:12
字串查詢
按照平常思維,查詢字串,無疑是查詢指定位置的字元,或者是查詢一個字元在什麼位置,簡單來理解就是到什麼位置去找某人,某人在什麼位置。
找到指定位置的字元
跟陣列一樣我們也可以把一串字元看成一個有多個字元組成的陣列,而每個字元都有一個索引值,索引值從零開始。
//獲取指定位置的字元
System.out.println("字串下標為5的字元為:"+str1.charAt(6));
結果:
字串下標為5的字元為:W
找到指定字元所在的位置
查詢指定字元所在的位置,使用的是indexOf()方法,它有幾個傳入值,
indexOf(String str,int indexfrom);第一個屬性值是需要查詢的字元,第二個屬性值是開始查詢的索引值
indexOf(int ch , int indexfrom);第一個屬性值是需要查詢的字元,第二個屬性值是開始查詢的索引值
另一點就是,如果查詢的字元不屬於該字串,則放回-1;
相同的還有一個獲取最後一次字元出現的位置,使用的是lastIndexOf()
//獲取指定字元所在的位置
//獲取第一次出現的位置
System.out.println("查詢字元所在位置為:"+str1.indexOf("a"));//查詢一個不存在於字串中的字元
System.out.println("查詢字元所在位置為:"+str1.indexOf("e"));
System.out.println("查詢字元所在位置為:"+str1.indexOf('o',5));
//獲取最後一次出現的位置
System.out.println("查詢字元所在位置為:"+str1.lastIndexOf("o"));
結果:
查詢字元所在位置為:-1
查詢字元所在位置為:1
查詢字元所在位置為:7
查詢字元所在位置為:7
字串擷取
字串擷取就是在一個字串中擷取從一個字元到另一個字元之間的所有字元,
方法為substring(int beganIndex,int endIndex);這裡是索引值,輸入的屬性值是其字元所對應的索引值即下標,但是不包括endIndex字元。額外瞭解,substring是計算機專業詞彙,字串的意思,子字串。
//字串擷取
System.out.println(str1.substring('e','o'));
結果:
o Wor
字串切割
切割的單詞是split,而字串切割使用的剛好就是split()方法,將字串切割為字元子串。
split(String regex,int limit);第一個引數regex就是切割的判斷字元,以什麼為切割的字元標準。第二個引數事實上是一個限制標準,limit,但使用這個引數會改變字串的長度。
另外一個就是將字串切割為byte陣列,在實際工作中,網路上的資料傳輸就是使用二進位制位元組資料。因此字串和位元組陣列之間的相互轉換也很常用。
這裡使用的就是getByes()方法,也很好理解,就是get獲取,bytes位元組,獲取位元組。
//字串切割
//切割為字串陣列
String newstr1 = "Considering the above-mentioned";
String[] stringArray = newstr1.split(" ",5);//將newstr1字串切割並賦值給字元陣列stringArray
for (String str3:stringArray)//通過for each迴圈遍歷陣列
{
System.out.print(str3+"\t");
}
//
System.out.println("\n將字串轉換為byte陣列:");
// 將字串轉換為位元組陣列
byte[] ascii = newstr1.getBytes();
// 遍歷位元組陣列,列印每個元素
for (byte aByte : ascii) {
System.out.print(aByte + "\t");
}
結果:
Considering the above-mentioned
將字串轉換為byte陣列:
67 111 110 115 105 100 101 114 105 110 103 32 116 104 101 32 97 98 111 118 101 45 109 101 110 116 105 111 110 101 100
字串大小寫切換
字串大小寫切換,很容易想到,兩種切換,大寫轉換為小寫,小寫轉換為大寫。
字串轉換為小寫:toLowerCase()方法。
字串轉換為大寫:toUpperCase()方法。
//字串大小寫轉換
String firstString = "As we have ofen said:It is never too old to learn";
String s = firstString.toLowerCase();
System.out.println("\n轉換為小寫後:"+s);
String secoundString = "A girl who loves to lough won't have too much lack";
String s1 = secoundString.toUpperCase();
System.out.println("轉換為大寫後:"+s1);
結果:
轉換為小寫後:as we have ofen said:it is never too old to learn
轉換為大寫後:A GIRL WHO LOVES TO LOUGH WON'T HAVE TOO MUCH LACK
字串比較
字串比較不要使用==,在String有專用的方法,boolean equals(Object object)方法,來比較字串內容是否相同,返回一個布林型別的結果。另外,在比較字串內容是否相同時,必須使用 equals() 方法。
// 用兩種方法建立三個內容相同的字串
String str12 = "hello";
String str22 = "hello";
String str33 = new String("hello");
System.out.println("使用equals()方法比較str12和str22的結果為:" + str12.equals(str22));
System.out.println("使用==運算子比較str12和str22的結果為:" + (str12 == str22));
System.out.println("使用==運算子比較str12和str22的結果為:" + (str12 == str22));
System.out.println("使用==運算子比較str12和str33的結果為:" + (str12 == str33));
結果:
使用equals()方法比較str12和str22的結果為:true
使用==運算子比較str12和str22的結果為:true
使用==運算子比較str12和str22的結果為:true
使用==運算子比較str12和str33的結果為:false
相關文章
- String類中的equals方法與Object類中的equals方法的不同點Object
- Java-string字串Java字串
- 【扯皮系列】一篇與眾不同的 String、StringBuilder 和 StringBuffer 詳解UI
- Java String類Java
- java基礎:String — 字串常量池與intern(二)Java字串
- Java String類,字串常量池,建立方法,字串的獲取,擷取,轉換,分割。Java字串
- java中String類常用方法的使用與例項Java
- Java String 字串拼接的三種方式與效率對比分析Java字串
- Java使用類-StringJava
- ABAP,Java,JavaScript裡的字串模板String TemplateJavaScript字串
- Java中String類的常用方法Java
- Java新人之路 -- String類Java
- java String類說明Java
- JAVA字串格式化-String.format()的使用Java字串格式化ORM
- 字串大小的不同求法與區別字串
- Java中String類的初始化?Java
- Java進階01 String類Java
- java 常用類-String-1Java
- java String類練習題Java
- string 字串字串
- String字串字串
- Java中的字串操作(比較String,StringBuiler和StringBuffer)Java字串UI
- [趣學程式]java的常用類之StringJava
- 2020-11-23Command物件的三個主要方法和String and String Builder類 字串建造物件UI字串
- Java--String類查詢方法Java
- JavaScript String 字串JavaScript字串
- Java基礎之字串String詳細解釋Java字串
- Java基礎類String學習分析Java
- String類的使用
- C# 字串(String)C#字串
- JavaScript 字串(String) 大全JavaScript字串
- String:字串型別字串型別
- String字串,陣列字串陣列
- java ftp工具類,帶你領略5款不同的java ftp工具類JavaFTP
- String類
- Java之String的equals與contentEquals區別Java
- 從字串到常量池,一文看懂String類設計字串
- String字串效能優化的探究字串優化