Java 切割字符串的几种方式
按效率排:
1、StringTokenizer切割
是java.util中的一个类,包含的api有:
StringTokenizer的方法请参考上一篇。
其中,countTokens为length;nextToken可以获取它的下一个字符串,其中delim为分隔符。
2、..split("*")分割;
最方便,运用最多的,不解释。
String[] split = data.split("\n");
if (split != null && split.length != 0) {
for (int i = 0; i < split.length-1; i++) {
String[] split1 = split[i].split(":");
···
}
}
3、调用String自己的api subString()
运用2的代码块
String[] split = data.split("\n");
if (split != null && split.length != 0) {
for (int i = 0; i < split.length-1; i++) {
System.out.println(split[i]);
String time = split[i].substring(0, 16);//前半部分 16为index
System.out.println(time);
String num = split[i].substring(17);//剩余部分 index +2;
System.out.println(num);
}
}
输出结果:
2019-01-08 21:55 136
2019-01-08 21:55
136
2019-01-08 22:00 86
2019-01-08 22:00
86
2019-01-08 22:04 136
2019-01-08 22:04
136
2019-01-08 22:09 86
2019-01-08 22:09
86
2019-01-08 22:12 136
2019-01-08 22:12
136
其中上面的split[i].substring(0, 15);15是我字符串我这边功能需要写死了的,你可以通过indexOf(int ch)获取位置。
4、正则获取时间,然后.replaceAll(String regex,String replacement)那时间用” “代替,剩下的字符串就是时间以外的字符串了。
实例:
以下实例使用了 split(string) 方法通过指定分隔符将字符串分割为数组:
JavaStringSplitEmp.java 文件
public class JavaStringSplitEmp {
public static void main(String args[]){
String str = "www-runoob-com";
String[] temp;
String delimeter = "-"; // 指定分割字符
temp = str.split(delimeter); // 分割字符串
// 普通 for 循环
for(int i =0; i < temp.length ; i++){
System.out.println(temp[i]);
System.out.println("");
}
System.out.println("------java for each循环输出的方法-----");
String str1 = "www.runoob.com";
String[] temp1;
String delimeter1 = "\\."; // 指定分割字符, . 号需要转义
temp1 = str1.split(delimeter1); // 分割字符串
for(String x : temp1){
System.out.println(x);
System.out.println("");
}
}
}
以上代码实例输出结果为:
www
runoob
com
------java for each循环输出的方法-----
www
runoob
com
在本例子中用到 String 类的 split 方法,其实在字符串分割时可以调用 StringTokenizer,实例化一个 StringTokenizer 的对象,通过 hasMoreTokens() 与 nextToken()进行判断并打印分割后的子字符串。具体代码如下:
import java.util.;
import java.lang.;
public class Main {
public static void main(String args[]) {
String str="www.runoob.com";
// 实例化对象,并指向以 . 对 str 进行分割
StringTokenizer str2=new StringTokenizer(str, ".");
// 对 str2 遍历并打印子字符串;
while(str2.hasMoreTokens()){
System.out.println(str2.nextToken());
}
}
}
输出结果为:
www
runoob
com
最新文章
- bfc+css
- [CareerCup] 17.9 Word Frequency in a Book 书中单词频率
- Java 第四章 选择结构2
- Python开发之【简单计算器】
- 记一次zookeeper集群搭建错误的排除
- 如何给EDIUS添加区域性马赛克
- hdoj 5349 MZL&#39;s simple problem
- ApplePay扩大全球发卡行合作,“苹果税”撑不住了?
- 【AngularJs】---表单验证
- 面试之SQL(2)--left join, inner join 和 right join的区别
- 解决“重新安装vmware-tools”灰色而无法安装的问题
- Linux 下的 blog客户端
- linux select函数 shutdown函数
- vijos P1001 谁拿了最多奖学金
- 均值滤波去除图像噪声的matlab程序
- update layer tree导致页面卡顿
- Alpha冲刺8
- android开发之Tabhost刷新
- C语言编程题
- poj 2236 加点 然后判断某两点是否连通