java.lang.String 代表不可變的字符序列,廣泛用於用戶輸入、網絡傳輸、文件處理等場景。字符串字面量 "xxx" 即為 String 對象。該類位於 java.lang 包,無需導入即可使用。
String greeting = "Hello world!";
編譯器會在字符串常量池中查找或創建對象,相同內容共享引用。
String(String original):拷貝副本。String(char[] value):字符數組轉字符串。String(char[] value, int offset, int count):數組切片。char[] helloArray = {'h','e','l','l','o','.'};
String helloString = new String(helloArray);
System.out.println(helloString); // hello.
使用 new 總會在堆上創建新對象,不進入常量池。
String 對象一旦創建,內容不可更改。所謂「修改」實為創建新對象,原引用指向新內存。頻繁修改建議用 StringBuilder 或 StringBuffer。
String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); // 17
concat() 方法:"My name is ".concat("Zara") → "My name is Zara"。+ 操作符(最常用):"Hello," + " world" + "!" → "Hello, world!"。String.format() 靜態方法返回格式化後的 String,而非直接打印。
String fs = String.format("Float: %f, Int: %d, Str: %s", floatVar, intVar, stringVar);
System.out.println(fs);
API 文檔包含數十個方法,主要分類:
indexOf、lastIndexOf、contains、startsWith/endsWith。substring、subSequence。replace、replaceAll、replaceFirst。split(regex)。toUpperCase/toLowerCase。trim、strip (Java 11+)。equals、equalsIgnoreCase、compareTo。toCharArray、getBytes、valueOf。圖示為 API 截圖,建議查閱官方文檔獲取完整列表。