zoukankan      html  css  js  c++  java
  • Java 切割字符串的几种方式

    按效率排:
    1、StringTokenizer切割
    是java.util中的一个类,包含的api有:
    StringTokenizer的方法请参考上一篇。
    其中,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(":");
                 ···
                }
            }
    

    3、调用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)获取位置。

    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

  • 相关阅读:
    java编程题古典算法之兔子问题
    java基础之final关键字
    java基础之final关键字
    java基础之静态代码块,局部代码块,构造代码块区别。
    java基础之静态代码块,局部代码块,构造代码块区别。
    java基础之完数判断
    java基础之完数判断
    java基础之二维数组不定义列数
    正则表达式快速入门
    深入理解JSON对象
  • 原文地址:https://www.cnblogs.com/miniSimple/p/12273458.html
Copyright © 2011-2022 走看看