【问题标题】:Error in output using split() method?使用 split() 方法输出错误?
【发布时间】:2012-02-20 11:17:00
【问题描述】:

我正在尝试使用简单的 split() 方法,但我得到的输出不正确。我正在使用此代码:

        question = newobject.ACTIVITY_LIST_OF_QUESTIONS.split("|");

其中 newobject.ACTIVITY_LIST_OF_QUESTIONS 包含 1|2|8|11|4|5|6|14|15|16|13|17|7|9|12|10 作为字符串,所以我必须得到每个数字在数组索引中。

但我得到的不是输出-

       1
       |
       2
       |
       8

如果有人遇到同样的问题,请帮忙?

【问题讨论】:

  • 你可以使用 String tokenizer 来做同样的事情
  • 如何打印输出?

标签: java string split


【解决方案1】:

您应该使用split("\\|")。你需要打破regex|的特殊含义。您可以使用\\| 进行操作。 [注意split() 是根据正则表达式拆分]。

String s = "1|2|8|11|4|5|6|14|15|16|13|17|7|9|12|10";
String[] arr = s.split("\\|");
System.out.println(Arrays.toString(arr));

结果:

[1, 2, 8, 11, 4, 5, 6, 14, 15, 16, 13, 17, 7, 9, 12, 10]

【讨论】:

    【解决方案2】:

    您需要将| 转义为\\|。您的正则表达式被解释为“空字符串or 空字符串”,因此每个位置都匹配。

    【讨论】:

      【解决方案3】:

      | 是一个正则表达式元字符,用于表示更改。要表示文字 |,您需要将其转义为 \\| 或将其放入字符类 [|]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-30
        • 2015-06-23
        • 2015-02-13
        相关资源
        最近更新 更多