【问题标题】:String class split method [duplicate]字符串类拆分方法[重复]
【发布时间】:2017-09-01 06:55:24
【问题描述】:

我写了一个java线程来分割字符串

public void run() {

String input="Sasi|maran|rishabh";

String arr[]=input.split("|");
    for (int i = 0; i < arr.length; i++) {
        try{

            System.out.println(arr[i]);

            Thread.sleep(1000);

        }catch(Exception e){
            e.printStackTrace();
        }

    }

}

输出期望:

sasi
rishabh
maran

但是我得到了什么输出:

S
a
s
i
|
m
a
r
a
n
|
r
i
s
h
a
b
h

【问题讨论】:

  • 我建议您非常仔细地阅读String.split的文档,并考虑一下|在正则表达式中的含义...
  • 以下两个答案似乎都没有解释 OP 在根本不重新排序 arr[] 时如何希望“rishabh”在“maran”之前打印?

标签: java arrays string multithreading


【解决方案1】:

String#split 方法将正则表达式作为参数。 | 是一个元字符,它在正则表达式中有特殊的含义。逃之夭夭。

String arr[]=input.split("\\|");

【讨论】:

    【解决方案2】:

    你需要逃离管道| 喜欢:String[] arr = input.split("\\|"); 并使用System.out.print(element); 而不是System.out.println(arr[i]);

    【讨论】:

      【解决方案3】:

      使用下面的代码

       input.split("\\|")
      

      【讨论】:

        猜你喜欢
        • 2010-11-03
        • 1970-01-01
        • 2014-09-02
        • 2017-07-22
        • 2011-07-06
        • 2011-09-03
        • 2016-03-15
        • 2017-02-05
        • 1970-01-01
        相关资源
        最近更新 更多