在Java中寻找快速、简单的方法来更改此字符串
" hello there "
变成了这样的东西
"hello there"
在这里我用一个空格替换了所有这些多个空格,除了我还希望字符串开头的一个或多个空格消失。
像这样的事情能让我在一定程度上做到
String mytext = " hello there ";
mytext = mytext.replaceAll("( )+", " ");
但事实并非如此。
在Java中寻找快速、简单的方法来更改此字符串
" hello there "
变成了这样的东西
"hello there"
在这里我用一个空格替换了所有这些多个空格,除了我还希望字符串开头的一个或多个空格消失。
像这样的事情能让我在一定程度上做到
String mytext = " hello there ";
mytext = mytext.replaceAll("( )+", " ");
但事实并非如此。
当前回答
"[ ]{2,}"
这将匹配多个空格。
String mytext = " hello there ";
//without trim -> " hello there"
//with trim -> "hello there"
mytext = mytext.trim().replaceAll("[ ]{2,}", " ");
System.out.println(mytext);
输出:
hello there
其他回答
String str = " hello world"
首先减少空间
str = str.trim().replaceAll(" +", " ");
第一个字母大写,其他字母小写
str = str.substring(0,1).toUpperCase() +str.substring(1,str.length()).toLowerCase();
"[ ]{2,}"
这将匹配多个空格。
String mytext = " hello there ";
//without trim -> " hello there"
//with trim -> "hello there"
mytext = mytext.trim().replaceAll("[ ]{2,}", " ");
System.out.println(mytext);
输出:
hello there
削减()
只删除开头和结尾空格。
从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
String str = " this is string ";
str = str.replaceAll("\\s+", " ").trim();
你也可以使用环视。
test.replaceAll("^ +| +$|(?<= ) ", "");
OR
test.replaceAll("^ +| +$| (?= )", "")
< >空间(?=)匹配一个空格字符,后面跟着另一个空格字符。所以在连续的空格中,它会匹配除最后一个空格以外的所有空格,因为它后面没有空格字符。这将为删除操作后的连续空格留下一个单独的空格。
例子:
String[] tests = {
" x ", // [x]
" 1 2 3 ", // [1 2 3]
"", // []
" ", // []
};
for (String test : tests) {
System.out.format("[%s]%n",
test.replaceAll("^ +| +$| (?= )", "")
);
}