【问题标题】:Splitting a space separated string拆分空格分隔的字符串
【发布时间】:2014-01-10 01:26:05
【问题描述】:
String numbers = "5 1 5 1";

那么,是吗:

String [] splitNumbers = numbers.split();

或:

String [] splitNumbers = numbers.split("\s+");

寻找:["5","1","5","1"]

知道为什么.split 行都不起作用吗?我尝试阅读有关正则表达式的答案,但我没有得到任何结果。

【问题讨论】:

    标签: java regex string split


    【解决方案1】:

    在上述情况split("\s+"); 中,您需要使用另一个反斜杠转义\,即:

    split("\\s+");

    或者

    split(" ");也可以

    注意 split("\\s+"); 分割任意长度的空格,包括换行符(\n)、制表符(\t),而split(" "); 将分割只有一个空格。

    例如,当您将字符串用两个空格分隔时,请说“5   1 5 1”,

    使用split("\\s+"); 你会得到{"5","1","5","1"}

    在使用split(" "); 时,您将获得{"5","","1","5","1"}

    【讨论】:

    • 注意"\\s+"和" "之间的区别
    【解决方案2】:

    您必须使用额外的\ 转义正则表达式,因为\ 表示转义字符:

    public static void main(String[] args) {
        String numbers = "5 1 5 1";
        String[] tokens = numbers.split("\\s+");
        for(String token:tokens){
            System.out.println(token);
        }
    }
    

    所以额外的\ 转义了下一个\,然后将其视为文字\。

    当使用\\s+ 时,字符串将被拆分为多个空白字符(空格、制表符等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多