仅在字符串末尾删除空格(java)

时间:2018-01-01 19:44:47

标签: java string indexing replace whitespace

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

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

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

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

有什么建议吗?

4 个答案:

答案 0 :(得分: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 :(得分:2)

如果您的目标是仅剪切尾随空格字符并保存字符串的前导空白字符,则可以使用public static List<Path> listFiles(String rootDirectory) { List<Path> files = new ArrayList<>(); listFiles(rootDirectory, files); return files; } private static void listFiles(String path, List<Path> collectedFiles) { File root = new File(path); File[] files = root.listFiles(); if (files == null) { return; } for (File file : files) { if (file.isDirectory()) { listFiles(file.getAbsolutePath(), collectedFiles); } else { collectedFiles.add(file.toPath()); } } } 类“String方法:

replaceFirst()

String yourString = " my text. "; String cutTrailingWhiteSpaceCharacters = yourString.replaceFirst("\\s++$", ""); - 一个或多个空格字符(使用占用量词(在Java API文档中查看\\s++类),列出了regułar表达式中使用的所有特殊字符)),

Pattern - 字符串结尾

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

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

答案 2 :(得分:1)

void movement(int a[],int n)
{    
     int i,k;

    for(k=0;k<n && a[k]==0;k++);


    for(i=n-1;i>k;i--)
    {
        if(a[i]==0)
        {
          a[i]=a[k];
          a[k++]=0;
        }

    }

}

答案 3 :(得分: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;
    }
}

解决方案看起来像这样。