Java 切割字符串的几种方式

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

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

  1. StringTokenizer切割
    java.util中的一个类,包含的api有:

    其中,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(":");
                 ···
                }
            }
  1. 调用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)获取位置。

  1. 正则获取时间,然后.replaceAll(String regex,String replacement)那时间用” “代替,剩下的字符串就是时间以外的字符串了。

你可能感兴趣的:(java,字符串分割,Java)