String and String Builder
String
1. length()
- Syntax:
public int length()
String s = "Hello";
int len = s.length(); // len = 5
返回字符串中字符的个数(Unicode 代码单元数)。
2. charAt(int index)
- Syntax:
public char charAt(int index)
String s = "Hello";
char c = s.charAt(1); // c = 'e'
返回指定位置处的字符,索引从 0 开始。若
index
越界会抛出 StringIndexOutOfBoundsException
。
3. substring(int beginIndex) / substring(int beginIndex, int endIndex)
- Syntax:
public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)
String s = "HelloWorld";
String s1 = s.substring(5); // s1 = "World"
String s2 = s.substring(0, 5); // s2 = "Hello"
-
substring(beginIndex)
:截取从beginIndex
到字符串末尾的子串。 -
substring(beginIndex, endIndex)
:截取从beginIndex
(包含)到endIndex
(不含)的子串。
4. indexOf(String str) / lastIndexOf(String str)
- Syntax:
public int indexOf(String str)
public int lastIndexOf(String str)
String s = "banana";
int i1 = s.indexOf("an"); // i1 = 1
int i2 = s.lastIndexOf("an"); // i2 = 3
-
indexOf
:返回子串首次出现的位置,未找到返回 -1。 -
lastIndexOf
:返回子串最后一次出现的位置,未找到返回 -1。
5. equals(Object anObject) / equalsIgnoreCase(String anotherString)
- Syntax:
public boolean equals(Object anObject)
public boolean equalsIgnoreCase(String anotherString)
String a = "Java";
String b = "java";
boolean eq1 = a.equals(b); // false
boolean eq2 = a.equalsIgnoreCase(b); // true
-
equals
:区分大小写比较两个字符串是否相等。 -
equalsIgnoreCase
:忽略大小写比较。
6. toUpperCase() / toLowerCase()
- Syntax:
public String toUpperCase()
public String toLowerCase()
String s = "Hello";
String up = s.toUpperCase(); // "HELLO"
String low = s.toLowerCase(); // "hello"
将字符串中的所有字符转换为相应的大小写形式,返回新字符串。
7. trim()
- Syntax:
public String trim()
String s = " abc ";
String t = s.trim(); // "abc"
去掉字符串首尾的空白字符(包括空格、制表符等),中间部分不受影响。
8. replace(CharSequence target, CharSequence replacement)
- Syntax:
public String replace(CharSequence target, CharSequence replacement)
String s = "2025-06-12";
String r = s.replace("-", "/"); // "2025/06/12"
将所有出现的
target
子串替换为 replacement
,返回新字符串。
9. split(String regex)
- Syntax:
public String[] split(String regex)
String s = "apple,banana,cherry";
String[] parts = s.split(","); // ["apple", "banana", "cherry"]
按照给定的正则表达式分隔字符串,返回子串数组。
10. contains(CharSequence s)
- Syntax:
public boolean contains(CharSequence s)
String s = "hello world";
boolean has = s.contains("world"); // true
判断字符串中是否包含指定的字符序列。
11. startsWith(String prefix) / endsWith(String suffix)
- Syntax:
public boolean startsWith(String prefix)
public boolean endsWith(String suffix)
String url = "https://example.com";
boolean ok1 = url.startsWith("https"); // true
boolean ok2 = url.endsWith(".com"); // true
判断字符串是否以指定前缀或后缀开头/结尾。
12. isEmpty()
- Syntax:
public boolean isEmpty()
String s1 = "";
String s2 = " ";
boolean e1 = s1.isEmpty(); // true
boolean e2 = s2.isEmpty(); // false
判断字符串长度是否为 0(仅空串返回 true,含空格也算不是空串)。
13. valueOf(…) / format(String format, Object… args)
- Syntax:
public static String valueOf(int i)
public static String format(String format, Object... args)
String num = String.valueOf(123); // "123"
String f = String.format("Name: %s, Age: %d", "Alice", 30);
// "Name: Alice, Age: 30"
-
valueOf
:将基本类型或对象转换为字符串。 -
format
:类似 C 语言printf
,根据格式字符串和参数生成新字符串。
String Builder
StringBuilder sb = new StringBuilder();
for (String item : list) {
if (!item.isEmpty()) {
sb.append(item).append("|");
}
}
if (sb.length() > 0) sb.deleteCharAt(sb.length() - 1); // 删除末尾分隔符
String result = sb.toString();//:注意一定要toString
- Efficient Memory Management: Avoid creating multiple string objects repeatedly (especially with large data volumes).
- Fully Controllable: Freely control delimiters, prefixes, suffixes, and concatenation logic.