我需要删除字母之间的所有空格,并将双重空格分隔为单词之间的单个空格。
所以这(单词之间的双重空格):
了解你的朋友
需要成为这个:
你好,我的名字是bob
我试过了
temp = "h e l l o m y n a m e i s b o b"
temp = temp.trim().replaceAll("\\s", "");
但它只是删除了所有空格。
我设法通过以下方式使其工作:
temp = temp.replace(" ", ".");
temp = temp.replace(" ", "");
temp = temp.replace(".", " ");
但我想要一种更简单的方法。
答案 0 :(得分:3)
你应该使用正则表达式(?!\ s)。这基本上表示任何空间,但后面没有空格。
这将使用如下:
temp = "h e l l o m y n a m e i s b o b";
temp = temp.replaceAll("\\s(?!\\s)", "");
System.out.println(temp);
输出:你好,我的名字是bob
希望这会有所帮助:)
答案 1 :(得分:0)
试试这个
temp = temp.trim().replaceAll("(?<!\\s)\\s(?!\\s)", "");
temp = temp.replaceAll("\\s+", " ");
答案 2 :(得分:0)
更简单,更优雅的方式,不包括搞乱正则表达式。
String yourString = "a s d d g d d d g g";
String finalstr = "";
for (String s: yourString.split(" ")) {
if (s.equals(""))
s = " ";
finalstr += s;
}
System.out.println(finalstr);
输出: asd dgddd gg