日常开发中,时常遇到截取字符串需求,在这里做个小结
方法1:调用 split()
将正则传入 split()。 返回的是一个字符串数组类型。【解析正则比较耗时,有一定性能损耗】
String str = "10000:0";
String[] res = str.split(":");
for (int i = 0; i < res.length; i++) {
System.out.println(res[i].toString());
}
运行结果:
10000
0
方法2: 调用 subString()
2.1 只传一个参数:subString(int beginIndex)
将字符串从索引值为 beginIngex 位置开始截取至字符串末尾
String str = "Asd123";
String res = str.subString(1);
System.out.println(res);
运行结果:
sd123
2.2 传入两个参数:substring(int beginIndex, int endIndex)
从索引号beginIndex开始到索引号endIndex结束(返回结果包含索引为beginIndex的字符不包含索引我endIndex的字符),如下所示:
String str = "10000:0";
String res = str.substring(0, 5);
System.out.println(res);
运行结果
10000
2.3 根据某个字符截取字符串
这里根据”:”截取字符串(也可以是其他子字符串)
String str = "10000:0";
String res = str.substring(0, str.indexOf(":"));
System.out.println(res);
运行结果:
10000
分析:indexOf(String str)方法返回的是子字符串第一次出现在字符串的索引位置,上面的代码返回的是 " : " 前面的字符。