Java 替换字符串中的多个相等字符

Java 替换字符串中的多个相等字符,java,Java,一个字符串可以在一行中包含多个空格-我需要用一个空格字符替换多个后续空格。“问题”是我不知道会遇到多少空间。我寻找的函数不仅要替换第一次出现的匹配,还要替换字符串中的所有多个相等字符 我在互联网上搜索了很多,并尝试了正则表达式“X*?(X,零次或多次)”,我在上面找到了“不情愿的量词” 这不起作用:s1=s1.replaceAll(“*?”,”) 其中s1=“你好世界”应转换为s1=“Hello World” 非常感谢您的帮助。您可以使用replaceAll()将空白替换为一个空格 String

一个字符串可以在一行中包含多个空格-我需要用一个空格字符替换多个后续空格。“问题”是我不知道会遇到多少空间。我寻找的函数不仅要替换第一次出现的匹配,还要替换字符串中的所有多个相等字符

我在互联网上搜索了很多,并尝试了正则表达式“X*?(X,零次或多次)”,我在上面找到了“不情愿的量词”

这不起作用:
s1=s1.replaceAll(“*?”,”)
其中
s1=“你好世界”应转换为
s1=“Hello World”


非常感谢您的帮助。

您可以使用
replaceAll()
将空白替换为一个空格

String st = "helllo   world"
System.out.println(st.replaceAll("\\s+"," "))

Output : helllo world

正如这个答案正确指出的那样,空格的regexp匹配器是
\\s+
。但是请记住,
s1.replaceAll(“\\s+”,”)
会生成一个新字符串。因此s1将保持不变,您需要将replaceAll的结果分配给一个新变量,以便使用regexp替换。