仅在字符串末尾删除空格(java)[复制]

问题描述 投票:1回答:4

我已经找到类似的主题,但他们并没有真正的帮助。

我基本上需要知道如何只在字符串末尾删除空格。

例如: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+个空格的情况。

但正如你所看到的,我仍然不知道使用哪种方法或者这实际上是正确的方法。

有什么建议吗?

java string indexing replace whitespace
4个回答
2
投票

如果您的目标是仅剪切尾随空格字符并保存字符串的前导空白字符,则可以使用String类'replaceFirst()方法:

String yourString = "   my text. ";
String cutTrailingWhiteSpaceCharacters = yourString.replaceFirst("\\s++$", "");

\\s++ - 一个或多个空格字符(使用积极量词(在Java API文档中查看Pattern类,你已经列出了regułar表达式中使用的所有特殊字符)),

$ - 字符串的结尾

您可能还想在编辑之前查看我的部分答案:

如果您不关心输入字符串的前导空格字符:String类提供trim()方法。在您的情况下,它可能是快速解决方案,因为它会削减给定String的前导和尾随空格。


5
投票

您可以使用正则表达式:

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();

1
投票
a = ("X" + a).trim().substring(1);

0
投票
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;
    }
}

解决方案看起来像这样。

© www.soinside.com 2019 - 2024. All rights reserved.