我已经找到类似的主题,但他们并没有真正的帮助。
我基本上需要知道如何只在字符串末尾删除空格。
例如:String a = "Good Morning it is a nice day ";
应该是:String a = "Good Morning it is a nice day";
你看到最后有三个空格或者什么东西。我得到了replaceAll()作为一个建议,但正如我所说,我只想在最后删除剩余的空格。我怎么做 ?我已经尝试了不同的东西,比如像这样经历String:
for(int i = a.length(); i > a.length() - 3; i++){
if(a.charAt(i) == ' '){
<insert Solution here>
}
}
使用上面的代码,我想检查字符串的最后三个字符,因为它已经足够了。这对我想要的东西来说已经足够了。在最后(可能)不会有99+个空格的情况。
但正如你所看到的,我仍然不知道使用哪种方法或者这实际上是正确的方法。
有什么建议吗?
如果您的目标是仅剪切尾随空格字符并保存字符串的前导空白字符,则可以使用String
类'replaceFirst()
方法:
String yourString = " my text. ";
String cutTrailingWhiteSpaceCharacters = yourString.replaceFirst("\\s++$", "");
\\s++
- 一个或多个空格字符(使用积极量词(在Java API文档中查看Pattern
类,你已经列出了regułar表达式中使用的所有特殊字符)),
$
- 字符串的结尾
您可能还想在编辑之前查看我的部分答案:
如果您不关心输入字符串的前导空格字符:String
类提供trim()
方法。在您的情况下,它可能是快速解决方案,因为它会削减给定String的前导和尾随空格。
您可以使用正则表达式:
a = a.replaceAll("\\s+$", "");
删除尾随空格并将结果存储回a
或使用for循环:
String a = "Good Morning it is a nice day ";
StringBuilder temp = new StringBuilder(a);
for( int i = temp.length() - 1 ; i >= 0; i--){
if(temp.charAt(i) == ' '){
temp.deleteCharAt(i);
}else{
break;
}
}
a = temp.toString();
a = ("X" + a).trim().substring(1);
int counter = 0;
String newWord = "";
for(int i = 0; i < word.length(); i++){
if (word.charAt(i) == " "){
counter++;
}
else {
counter = 0;
}
if (counter > 1){
newWord = word.substring(0, i);
break;
}
else {
newWord = word;
}
}
解决方案看起来像这样。