Android开发 - String 类常用的主要方法解析
-
string.length()
:得到字符串的长度(字符的个数)String str = "Hello World"; int len = str.length(); // len 的值是 11 System.out.println(len); // 输出:11
Hello World
中有 11 个字符(包括空格),所以length()
返回 11
-
string.charAt(int index)
:得到字符串中指定索引处的字符String str = "Hello"; char ch = str.charAt(1); // ch 的值是 'e' System.out.println(ch); // 输出:e
Hello
中,索引 1 处的字符是e
,索引 0 处的字符则是H
- 参数解析:
- index:int 类型,表示字符在字符串中的索引(从 0 开始)
-
string.substring(int beginIndex)
:得到从指定起始位置到字符串末尾的子字符串String str = "Hello World"; String sub1 = str.substring(6); // sub1 的值是 "World" System.out.println(sub1); // 输出:World
str.substring(6)
得到从索引 6 开始到末尾的子字符串World
- 参数解析:
- beginIndex:int 类型,子字符串开始位置的索引(包括在内)
-
string.substring(int beginIndex, int endIndex)
:得到从指定起始位置到结束位置之间的子字符串(不包括结束位置的字符)String str = "Hello World"; String sub2 = str.substring(0, 5); // sub2 的值是 "Hello" System.out.println(sub2); // 输出:Hello
str.substring(0, 5)
得到从索引 0 到索引 5 之前的子字符串Hello
- 参数解析:
- beginIndex:int 类型,子字符串开始位置的索引(包括在内)
- endIndex:int 类型,子字符串结束位置的索引(不包括在内)
-
string.indexOf(String str)
:得到指定子字符串在原字符串中第一次出现的索引位置。如果没有找到,则得到 -1String str = "Hello World"; int index1 = str.indexOf("o"); // index1 的值是 4 System.out.println(index1); // 输出:4
Hello World
中,第一个o
的索引是 4- 参数解析:
- str:String 类型,表示要查找的子字符串
-
string.lastIndexOf(String str)
:得到指定子字符串在原字符串中最后一次出现的索引位置。如果没有找到,则得到 -1String str = "Hello World"; int index2 = str.lastIndexOf("o"); // index2 的值是 7 System.out.println(index2); // 输出:7
Hello World
中,最后一个o
的索引是 7- 参数解析:
- str:String 类型,表示要查找的子字符串
-
string.toUpperCase()
:将所有字符串转换为大写String str = "Hello World"; String upper = str.toUpperCase(); // upper 的值是 "HELLO WORLD" System.out.println(upper); // 输出:HELLO WORLD
-
string.toLowerCase()
:将所有字符串转换为小写String str = "HELLO WORLD"; String lower = str.toLowerCase(); // lower 的值是 "hello world" System.out.println(lower); // 输出:hello world
-
string.trim()
:去除字符串两端的空白字符(空格、制表符等)String str = " Hello World "; String trimmed = str.trim(); // trimmed 的值是 "Hello World" System.out.println(trimmed); // 输出:Hello World
Hello World
中的前后空格被trim()
方法去掉了
-
string.replace(char oldChar, char newChar)
:将字符串中所有出现的指定字符替换为新字符String str = "Hello World"; String replaced1 = str.replace('o', 'a'); // replaced1 的值是 "Hella Warld" System.out.println(replaced1); // 输出:Hella Warld
-
参数解析:
-
oldChar:char 类型,表示要替换的旧字符
-
newChar:char 类型,表示替换后的新字符
-
-
-
string.replace(String oldStr, String newStr)
:将字符串中所有出现的指定子字符串替换为新的子字符串String str = "Hello World"; String replaced2 = str.replace("World", "Java"); // replaced2 的值是 "Hello Java" System.out.println(replaced2); // 输出:Hello Java
-
参数解析:
-
oldStr:String 类型,表示要替换的旧子字符串
-
newStr:String 类型,表示替换后的新子字符串
-
-
-
string.equals(Object obj)
:比较两个字符串的内容是否相等(区分大小写)String str1 = "Hello"; boolean result1 = str1.equals(str2); // result1 的值是 false System.out.println(result1); // 输出:false
equals()
比较时区分大小写,所以Hello
和hello
不相等- 参数解析:
- obj:Object 类型,表示要比较的对象(通常是另一个字符串)
-
string.equalsIgnoreCase(String anotherString)
:比较两个字符串的内容是否相等(不区分大小写)String str1 = "Hello"; String str2 = "hello"; boolean result2 = str1.equalsIgnoreCase(str2); // result2 的值是 true System.out.println(result2); // 输出:true
equalsIgnoreCase()
比较时不区分大小写,所以Hello
和hello
相等- 参数解析:
- anotherString:String 类型,表示要比较的另一个字符串
-
string.startsWith(String prefix)
:判断字符串是否以指定的前缀开始String str = "Hello World"; boolean start = str.startsWith("Hello"); // start 的值是 true System.out.println(start); // 输出:true
string.startsWith("Hello")
判断字符串是否以Hello
开头,返回true
- 参数解析:
- prefix:String 类型,表示要检查的前缀
-
string.endsWith(String suffix)
:判断字符串是否以指定的后缀结束String str = "Hello World"; boolean end = str.endsWith("World"); // end 的值是 true System.out.println(end); // 输出:true
string.endsWith("World")
判断字符串是否以World
结尾,返回true
- 参数解析:
- anotherString:String 类型,表示要检查的后缀
-
string.split(String regex)
:根据指定的正则表达式将字符串分割成若干部分,返回一个字符串数组String str = "apple,banana,cherry"; String[] fruits = str.split(","); // fruits 数组包含 ["apple", "banana", "cherry"] for (String fruit : fruits) { System.out.println(fruit); } /** 输出 apple banana cherry **/
split(",")
使用逗号作为分隔符,将字符串分割成多个部分- 参数解析:
- regex:String 类型,表示用来分割字符串的正则表达式
-
string.format(String format, Object... args)
:用于创建一个格式化的字符串,并将指定的对象格式化为字符串表示形式。它类似于 C 语言的 printf 功能String name = "Alice"; int age = 25; double height = 5.8; // 格式化字符串,输出包含姓名、年龄和身高的信息 String formattedString = String.format("Name: %s, Age: %d, Height: %.1f", name, age, height); System.out.println(formattedString); // 输出:Name: Alice, Age: 25, Height: 5.8
-
%s 用于插入字符串类型的变量 name
-
%d 用于插入整数类型的变量 age
-
%.1f 用于插入浮点数类型的变量 height,并指定小数点后显示 1 位
-
参数解析:
- format:String 类型,表示格式化字符串,其中包含格式化说明符
- args:Object... 类型,表示可变参数列表,包含要格式化的对象
-
常用的格式化说明符:
-
%s:字符串
-
%d:整数
-
%f:浮点数
-
%x:十六进制整数
-
%o:八进制整数
-
%n:平台独立的换行符
-
-
-
string.contains(CharSequence s)
:用于判断字符串中是否包含指定的字符序列String str = "Hello World"; boolean result = str.contains("World"); // result 的值是 true System.out.println(result); // 输出:true
-
Hello World
包含子字符串World
,因此 contains 方法返回 true -
参数解析:
- s:CharSequence 类型,表示要查找的字符序列(如字符串、StringBuilder 等)
-
-
string.isEmpty()
:用于判断字符串是否为空(长度为 0)String str1 = ""; String str2 = "Hello"; boolean isEmpty1 = str1.isEmpty(); // isEmpty1 的值是 true boolean isEmpty2 = str2.isEmpty(); // isEmpty2 的值是 false System.out.println(isEmpty1); // 输出:true System.out.println(isEmpty2); // 输出:false
str1
是一个空字符串,因此isEmpty()
返回 true。str2
不是空字符串,因此返回 false
-
string.valueOf(...)
:用于将不同类型的值(如 int、double、char 等)转换为字符串int number = 100; String strNumber = String.valueOf(number); System.out.println(strNumber); // 输出:100
- valueOf 方法将 int 类型的 number 转换为字符串 100
- 参数解析:
- ...:可以是多种基本数据类型或对象类型(如 int、double、boolean、char、Object` 等)
-
string.join(CharSequence delimiter, CharSequence... elements)
:用于将多个字符串或字符序列用指定的分隔符连接成一个字符串String joinedString = String.join("/", "apple", "banana", "cherry"); System.out.println(joinedString); // 输出:apple/banana/cherry
-
join 方法用
/
分隔符将apple
、banana
和cherry
连接成一个字符串 -
参数解析:
- delimiter:CharSequence 类型,表示分隔符
- elements:CharSequence... 类型,表示要连接的多个字符序列
-