请问String常见的方法有哪些,列举几个?
- length(); //计算字符串长度
- equals(); //比较两个字符串
- subString(); //截取字符串
- concat();//连接两个字符串
- replace(); //替换
- valueOf(); //转换为字符串
- charAt(); //截取一个字符串
- getChars(); //截取多个字符串
- indexOf();//查找字符或者子串第一次出现的地方。
- lastIndexOf();//查找字符或者子串是后一次出现的地方。
- lastIndexOf();//查找字符或者子串是后一次出现的地方
- equalsIgnoreCase();//比较两个字符串,忽略大小写
- startsWith();//startsWith()方法决定是否以特定字符串开始
- endWith();//方法决定是否以特定字符串结束
- trim();//去掉起始和结尾的空格
- toLowerCase();//转换为小写
- toUpperCase();// 转换为大写
但是像replace(),substring(),toLowerCase()这三个方法需要注意一下,我们看下下面一段代码:
@Test
public void StringTest () {
String ss = "123456";
System.out.println("ss = " + ss);
String replace = ss.replace('1', '0');
System.out.println("ss = " + ss);
System.out.println("replace = " + replace);
}
运行结果:
如果你不了解replace方法的源码,可能会认为最后的打印结果为 “ss = 023456”,但是实际上方法内部创建了一个新的String对象,并将这个新的String对象返回。 原来的对象是不会被改变的。
还有诸如contact()方法,源码如下:
public String concat(String str) {
int otherLen = str.length();
if (otherLen == 0) {
return this;
}
int len = value.length;
char buf[] = Arrays.copyOf(value, len + otherLen);
str.getChars(buf, len);
return new String(buf, true);
}
从上可知参数str不能为null,否则就会包空指针异常。用contact()拼接字符串速度也很快,因为直接Arrays.copyOf,直接内存复制。