【问题标题】:How to Split Strings in an Array [duplicate]如何拆分数组中的字符串[重复]
【发布时间】:2018-01-23 15:51:33
【问题描述】:

首先,我知道可能有重复但我不明白,所以请不要将其标记为重复!

我希望将数组中的字符串(见下文)拆分为字符:

原文:

String original = "0, 0, 0, 0 | 1, 1, 1, 1 | 2, 2, 2, 2"

数组:

String[] array2 = {"0, 0, 0, 0", "1, 1, 1, 1", "2, 2, 2, 2"}

我想要的结果:

String[] arrayprime = {"0", "0", "0", "0", "1", "1", "1", "1", "2", "2", "2", "2"}

你会怎么做?我想到了

String[] array2 = original.split("\\|");
String[] arrayprime = array2.split(", ");

但它似乎不起作用(说“找不到符号”)。

我应该把数组(array2)变成一个字符串吗(如果是,如何)?然后又分裂了?

【问题讨论】:

  • array2.split(", ");?
  • 您的第二个拆分不会设置为使用逗号吗?你似乎有它在一个空间
  • 您可以在一次调用中拆分多个分隔符。
  • 是的,感谢您的编辑 - 已修复!我会调查的。
  • 我发布了链接。

标签: java arrays


【解决方案1】:

您似乎想在 ", "" | " 上拆分。

由于split支持正则表达式,你可以写成

String[] array = yourText.split(", | \\| ");
//                                 ^-OR operator which creates 
//                                   alternation between ", " and " | "

【讨论】:

    【解决方案2】:

    你可以使用character classes,在这种情况下不需要转义

        String original = "0, 0, 0, 0 | 1, 1, 1, 1 | 2, 2, 2, 2";
        String arr[]=original.split("[|,]");
        System.out.println(Arrays.toString(arr));
    

    【讨论】:

      【解决方案3】:

      你的错误在这一行

      String[] arrayprime = array2.split(" ");
      

      您不能对数组使用拆分方法。拆分方法在字符串上。所以基本上你必须遍历array2 并对每个String 应用拆分。

      或者干脆使用正则表达式

      String[] array2 = original.split("\\||,");
      

      请注意,使用它后,您的字符串中会有空格,因为您的初始字符串有空格。请考虑修剪它们以获得所需的输出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-22
        • 2013-08-19
        • 1970-01-01
        • 2011-12-20
        • 2016-08-04
        • 2014-05-16
        • 1970-01-01
        • 2018-12-29
        相关资源
        最近更新 更多