Java 切割字符串的几种方式

//以data  为案例参数。
     String   data = "2019-01-08 21:55 136 
2019-01-08 22:00 86 
2019-01-08 22:04 136 
2019-01-08 22:09 86 
2019-01-08 22:12 136 
2019-01-14 10:49 86 
";

已下排名按效率高低,如果有疑问自己可以设置时间戳,自己测试吧。

  1. StringTokenizer切割 是java.util中的一个类,包含的api有: 其中,countTokens为length;nextToken可以获取它的下一个字符串,其中delim为分隔符。
  2. ..split("*")分割; 最方便,运用最多的,不解释。
String[] split = data.split("
");
        if (split != null && split.length != 0) {
          
            for (int i = 0; i < split.length-1; i++) {
                String[] split1 = split[i].split(":");
                 ···
                }
            }
  1. 调用String自己的api subString() 运用2的代码块
String[] split = data.split("
");
        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)获取位置。

  1. 正则获取时间,然后.replaceAll(String regex,String replacement)那时间用” “代替,剩下的字符串就是时间以外的字符串了。
经验分享 程序员 微信小程序 职场和发展