Java/字符串
< Java
簡介
編輯Java中的字符串和C語言相同,都是用由一對引號""括起來的任意長度的字符組成,比如:
String str = "Hello, world!";
其中String是Java的字符串類,包含在默認的java.lang包類。在Java語言中,所有的字符串都是由String類來表示的。與C語言比較起來,Java的字符串有以下幾個不同:
- String類所表達的字符串是無法改變的,也就是說只能對其字符進行讀操作,否則Java將生成新字符串。這在很大程度上幫助了Java,將程序中所有相同的字符串用一個對象來表達。
- String中的字符都是char類型,即每個字符占用2個字節。
- 與C語言利用\0x00來表示字符串的結尾,String類中包含了該字符串的長度(可由str.length()獲得)。
在每個Java的類中,有一個String toString()的函數。利用該函數,類可以提供一個向外的字符串來表達自己的相關信息。
字符串列印
編輯在java.lang包里,System類的靜態成員變量out和err分別提供了列印標準輸出和標準錯誤的函數,兩者都是java.io.PrintStream類,主要使用的標準輸出方式有:
System.out.print("Hello, world!");
System.out.println("I'm Kitty.");
System.out.printf("I'm %d years old.\n", 12);
System.out.format("Do you like me?\n");
轉義字符
編輯在原始碼中,Java字符串使用了和C語言一樣的轉義字符,用斜槓表示:
- \t: 制表符
- \n: 換行
- \0xFFFF: 用16進位表示的字符
- \0255: 用8進位表示的字符
字符串操作
編輯String類中提供了很多字符串操作的函數,但請記住,原字符串並沒有改變,而是生成了新字符串。主要的操作如下:
- String concat(String str)
- String replace(char oldChar, char newChar)
- String substring(int beginIndex)
- String toLowerCase()
- String toUpperCase()
- String trim()
詳細的關於String類的信息,請參閱Java API:java.lang.String
字符串生成
編輯java.lang包中提供了兩個類來支持對字符串的生成,分別是StringBuffer和StringBuilder,兩者的區別在於前者是執行緒安全的。下面提供一個StringBuilder的例子來說明是如何生成新字符串的:
String name = "Kitty";
int age = 12;
StringBuilder builder = new StringBuilder(); // 新建StringBuilder类
builder.append("My name is ").append(name).append('.').append('\n'); // 利用append函数向StringBuilder对象添加新的字符串
builder.append("I'm ").append(age).append('.').append('\n'); // 支持对基础数据类型的输入
String new_str = builder.toString(); // 最后利用toString导出新字符串
System.out.println(new_str);
控制台將輸出:
>>> My name is Kitty.
>>> I'm 12.