zoukankan      html  css  js  c++  java
  • java String split 按定长分割

    from:http://www.rgagnon.com/javadetails/java-0438.html

    Some notes from A. Gonzales about String.split()

    Special cases using String.split():

    public class StringSplit {
      public static void main(String args[]) throws Exception{
        System.out.println(
            java.util.Arrays.toString(
            "  s".split(" ")
        ));
        // output : [, , s]
    
        System.out.println(
            java.util.Arrays.toString(
            "".split("")
        ));
        // output : []
    
        System.out.println(
            java.util.Arrays.toString(
            "  ".split(" ")
        ));
        // output : []
    
        System.out.println(
            java.util.Arrays.toString(
            "      ".split(" ")
        ));
        // output : []
    
        System.out.println(
            java.util.Arrays.toString(
            " s ".split(" ")
        ));
        // output : [, s]
        }
    }
    

    It's important to note that an invocation like:

    param = req.getParam(...);
    String[] words = param.split(" ");
    String firstWord = words[0];
    

    will generate a NullPointerException if param.equals(" ").


    Using split() with a space can be a problem. Consider the following :

    public class StringSplit {
      public static void main(String args[]) throws Exception{
        String testString = "Real  How To";  // extra space
    
        System.out.println(
            java.util.Arrays.toString(
            testString.split(" ")
        ));
        // output : [Real, , How, To]
        }
    }
    

    We have an extra element. The fix is to specify a regular expression to match one or more spaces.

    public class StringSplit {
      public static void main(String args[]) throws Exception{
        String testString = "Real  How To";
    
        System.out.println(
            java.util.Arrays.toString(
            testString.split("\\s+")
        ));
        // output : [Real, How, To]
        }
    }
    

    Since String.split() is based on regular expression, you can make some complex operations with a simple call!

        String testString = "{RealHowto}{java-0438.html}{usage of String.split()}";
        System.out.println(java.util.Arrays.toString(
            testString.split("[{}]")
        ));
    
        // output : [, RealHowto, , java-0438.html, , usage of String.split()]
        // note : extra empty elements :-(
    

    To split a long string into into fixed-length parts. In this example, we split in groups of 3 characters :

        String testString = "012345678901234567890";
        System.out.println(java.util.Arrays.toString(
            testString.split("(?<=\\G.{3})")
        ));
    
        // output : [012, 345, 678, 901, 234, 567, 890]
    

    To split but keep the separator :

       String testString = "RealHowto!java-0438.html!usage of String.split()!";
        System.out.println(java.util.Arrays.toString(
            testString.split("(?<=[!])")
        ));
    
        // output : [RealHowto!, java-0438.html!, usage of String.split()!]
      }
  • 相关阅读:
    C++ MFC学习 (二)
    C++ MFC字符转换
    C++ MFC学习 (一)
    Windows.h 文件学习
    Git 学习
    Git 学习
    php压缩文件夹并下载到本地
    接口类型无限级分类
    mysql 共享锁 排它锁
    docker基础命令
  • 原文地址:https://www.cnblogs.com/wucg/p/2543826.html
Copyright © 2011-2022 走看看