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

  • 相关阅读:
    Codeforces 1316B String Modification
    Codeforces 1305C Kuroni and Impossible Calculation
    Codeforces 1305B Kuroni and Simple Strings
    Codeforces 1321D Navigation System
    Codeforces 1321C Remove Adjacent
    Codeforces 1321B Journey Planning
    Operating systems Chapter 6
    Operating systems Chapter 5
    Abandoned country HDU
    Computer HDU
  • 原文地址:https://www.cnblogs.com/miniSimple/p/12273458.html
Copyright © 2011-2022 走看看