用于记录java学习的过程,思来想去还是整理出来比较好,倒也可与诸君共勉。
1. 字符串信息获取
1.1 字符串长度
String str = "Hello World";
int n = str.length();
// 返回值 n = 11
注意,返回值为int类型,并且空格也要算作长度。
1.2 子字符串查找
String类提供了两种查找字符串的方法:indexOf()和lastIndexOf(),其中indexOf()返回的是搜索的字符或字符串首次出现的位置,而lastIndexOf()返回的是搜索的字符或字符串最后一次出现的位置。
// 语法
str.indexOf(substr)
// str: 任意字符串对象
// substr:要搜索的子字符串
// 示例
String str = “Hello World”;
str.indexOf("o"); // 返回值为4
str.indexOf("or"); // 返回值为7
str.indexOf("a"); // 未搜索到目标字符串,返回-1
lastIndexOf()方法也是同理使用,这里就不赘述了,诸君可自试之。需要注意的是,若lastIndexOf()方法的输入参数是空字符串,即lastIndexOf(""),则其返回值与length()方法返回结果相同。
1.3 获取指定索引位置的字符
String str = "Hello World";
// 在String.class文件中可以看到,
// charAt(@range(from 0, to java.lang.Integer.MAX_VALUE))
char mychar = str.charAt(6); // 输出为'W'字符
注意,其返回值是一个char,并且入参的范围为0-intMax。
2. 字符串操作
2.1 获取子字符串
// 语法
substring(int begingIndex, int endIndex)
// begingIndex: 起始索引位置
// endIndex: 终止索引位置
String str = "Hello World";
String substr = str.substring(3, 5);
// 输出为“lo”
注意,若入参只有begingIndex, 则endIndex默认到字符串的结尾,并且空格也会占用一个索引位。
2.2 去除空格
// 示例
String strBlank = “ Hello World ”;
System.out.println(strBlank.trim());
// 输出为“Hello World”
注意,trim()方法只删去字符串的前导空格和后导空格,中间的空格不会删除。
2.3 字符串替换
// 语法
str.replace(char oldChar, char newChar)
// oldChar表示原字符串中待替换的字符
// newChar表示用于替换原字符的字符
String str = "Hello World";
str.replace('o', 'O');
// 此时str变成“HellO WOrld”
注意,入参只能是一个字符,并且若原字符串中有多个字符,则都会被替换成新的字符。
2.4 判断字符串的开始与结尾
// 示例
String str = "Hello World";
boolenan flag = str.startsWith("He");
// flag的值为true
注意,这里只给出了判断开始字符串的示例,判断结尾的方法名为endsWith(),用法同startsWith()。
2.5 判断字符串是否相等
// 语法
str.equals(String otherStr)
// 示例
String str = "Hello World";
String otherStr = "Hello world";
str.equals(otherStr);
// 返回值为 false
str.equalsIgnoreCase(otherStr);
// 返回值为 true
注意,字符串对象的比较不能简单的用“==”,这是因为运算符“==”比较的是两个字符串的地址是否相同,而即使两个字符串对象的内容相同,其地址也是不同的。同时从上面的示例可看出equals()方法和equalsIgnoreCase()方法的区别,即,后者无视字符串大小写。
2.6 按字典顺序比较两个字符串
// 示例
String str = "Hello World";
String otherStr = "Hello world";
str.compareTo(otherStr);
// 返回值为 -32, 这是因为str中的'W'比otherStr中的'w'要小32
str.compareToIgnoreCase(otherStr);
// 返回值为 0,忽略大小写,则两个字符串相等,返回0
2.7 字母大小写转换
// 示例
String str = "Hello World";
str.toLowerCase();
// 返回值为“hello world”
str.toUpperCase();
// 返回值为“HELLO WORLD”
2.8 字符串分割
// 示例
String str = "one,two,three,four";
str.split(",");
/** 输出为
* one
* two
* three
* four
*/
除了原始的split()方法外,还可以限制分割的次数,具体使用方法如下:
// 示例
String str = "one,two,three,four";
str.split(",", 2);
/** 输出为
* one
* two,three,four
*/
如有错误,还望诸君指正。
参考资料:《Java从入门到精通(第3版)》