如何根据空白区数分割字符串

时间:2017-11-08 13:33:19

标签: java string split delimiter

我正在尝试使用Java中的String.split函数来实现这一点,但似乎找不到优雅的解决方案。每个字符或单词之间的空格数是固定的。

String original = "H  E  L  L  O    W  O  R  L  D"

String finalWord = original.split();

System.out.println(finalWord);

HELLO WORLD 

基本上,每个字母表之间的空白数量是固定的,例如在图2中,字之间的空白数也是固定的,例如4。

如何使用Java实现这一目标?

ħ(空格)(空间)的电子(空格)(空间)的(空格)(空间)的→< /强>(空格)(空间)的 0 (空格)(空间)(空间)(空间)的 w ^ (空格)(空间)的 0 (空格)(空间)的 - [R (空格)(空间)的(空格)(空间)的 d

HELLO(空间)WORLD

希望这是可以理解的!

6 个答案:

答案 0 :(得分:3)

original.replaceAll("\\s{4,}", " ").replaceAll("\\s{2,}", "").trim()

第一个用空格替换4个空格,第二个用空格替换2个空格。

答案 1 :(得分:1)

所以你不需要拆分它就可以简单地将2个空格替换成1个空,然后你得到HELLO(空格)WORLD:

String original = "H  E  L  L  O     W  O  R  L  D";
String a = original.replaceAll("  ", "");
System.out.println(a);

答案 2 :(得分:0)

您可以将正则表达式传递给拆分分隔符,以便在两个或三个空格中拆分,从而使四个空格保持不变:

String input = "H  E  L  L  O    W  O  R  L  D";

String[] parts = input.split("\\W{2,3}"); // [H, E, L, L, O, , W, O, R, L, D]
System.out.println(String.join("", parts)); // HELLO WORLD

答案 3 :(得分:0)

将4个空格替换为1个空格,然后将2个空格替换为空格: http://rextester.com/LURGM31649

String original = "H  E  L  L  O    W  O  R  L  D";
original.replaceAll("    ", " ").replaceAll("  ", "");

答案 4 :(得分:0)

你可以试试。

public static void main(String[] args) throws IOException {
    //BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    //String line =reader.readLine();
    String line = "H  E  L  L  O    W  O  R  L  D";
    String finalString;

    finalString = line.replaceAll("  ", "");
    finalString = finalString.replaceAll("    ", " ");
    System.out.println(finalString);

}

答案 5 :(得分:0)

如果它不是作业,你可以尝试使用Java 8

String original = "H  E  L  L  O    W  O  R  L  D";
String str = Stream.of(original.split("\\s{4}"))
                   .map(x-> x.replaceAll("\\s{2}", ""))
                   .collect(Collectors.joining(" "));
System.out.println(str);