J.D*_*Doe 1 java string indexing whitespace replace
我已经找到了类似的主题,但是它们并没有真正的帮助。
我基本上需要知道如何仅在字符串末尾删除空格。
例如: 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>
}
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我想检查字符串的最后三个字符,因为这足够了。这足以满足我的需求。最后不会有99+个空格的情况(可能)。
但是如您所见,我仍然不知道该使用哪种方法,或者这是否是正确的方法。
有什么建议吗?
如果您的目标是仅剪切尾随空格字符并保存字符串的前导空格字符,则可以使用String
类的replaceFirst()
方法:
String yourString = " my text. ";
String cutTrailingWhiteSpaceCharacters = yourString.replaceFirst("\\s++$", "");
Run Code Online (Sandbox Code Playgroud)
\\s++
- 一个或多个空白字符(使用占有量词(查看Pattern
Java API 文档中的 class,您已在那里列出了正则表达式中使用的所有特殊字符)),
$
- 字符串结束
您可能还想在编辑之前查看我的部分答案:
如果您不关心输入字符串的前导空白字符:
String
类提供了一种trim()
方法。在您的情况下,它可能是快速解决方案,因为它会减少给定字符串的前导和尾随空格。
您可以使用正则表达式:
a = a.replaceAll("\\s+$", "");
Run Code Online (Sandbox Code Playgroud)
删除尾随空格并将结果存储回 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();
Run Code Online (Sandbox Code Playgroud)