在Java中寻找快速、简单的方法来更改此字符串
" hello there "
变成了这样的东西
"hello there"
在这里我用一个空格替换了所有这些多个空格,除了我还希望字符串开头的一个或多个空格消失。
像这样的事情能让我在一定程度上做到
String mytext = " hello there ";
mytext = mytext.replaceAll("( )+", " ");
但事实并非如此。
在Java中寻找快速、简单的方法来更改此字符串
" hello there "
变成了这样的东西
"hello there"
在这里我用一个空格替换了所有这些多个空格,除了我还希望字符串开头的一个或多个空格消失。
像这样的事情能让我在一定程度上做到
String mytext = " hello there ";
mytext = mytext.replaceAll("( )+", " ");
但事实并非如此。
当前回答
如果你已经在你的项目中使用了Guava(19+节),你可能想要使用这个:
CharMatcher.whitespace().trimAndCollapseFrom(input, ' ');
或者,如果你需要删除空格符号(或U+0020,查看更多空白),使用:
CharMatcher.anyOf(" ").trimAndCollapseFrom(input, ' ');
其他回答
看到String.replaceAll。
使用正则表达式“\s”并替换为“”。
然后使用String.trim。
试试这个。
示例代码
String str = " hello there ";
System.out.println(str.replaceAll("( +)"," ").trim());
输出
hello there
首先,它将所有空格替换为单个空格。我们必须要做修剪字符串,因为开始的字符串和结束的字符串,它会取代所有的空格,如果字符串有空格在开始的字符串和结束的字符串,所以我们需要修剪它们。然后你会得到你想要的字符串。
String myText = " Hello World ";
myText = myText.trim().replace(/ +(?= )/g,'');
// Output: "Hello World"
要消除字符串开头和结尾的空格,请使用String#trim()方法。然后使用你的mytext。replaceAll("()+", " ")。
削减()
只删除开头和结尾空格。
从Java文档, 返回值为此字符串的字符串,删除前导和尾部的任何空格。
System.out.println(" D ev Dum my ".trim());
“D ev House my”
replace(), replaceAll()
替换单词中的所有空字符串,
System.out.println(" D ev Dum my ".replace(" ",""));
System.out.println(" D ev Dum my ".replaceAll(" ",""));
System.out.println(" D ev Dum my ".replaceAll("\\s+",""));
输出:
"DevDummy"
"DevDummy"
"DevDummy"
注意:“\s+”为类似空格字符的正则表达式。
参考资料:https://www.codedjava.com/2018/06/replace-all-spaces-in-string-trim.html