我正在尝试使用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
希望这是可以理解的!
答案 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);