-3

您如何使用 string.trim() 方法仅在末尾修剪空格?

我的意思是不影响前面的空间

例如:输入:“这是链接的”o/p:“这是链接的”

4

8 回答 8

13

使用正则表达式:

str.replaceAll("\\s+$", "");
  1. \s – 任何空白字符

  2. + – 匹配一个或多个空白字符

  3. $ - 在字符串的末尾

您可以从这里阅读更多内容。

于 2013-07-30T11:32:40.423 回答
3

没有右修剪方法,但您可以通过多种变通方法来实现。一种包括在字符串的开头放置一个非空白字符,修剪它,然后删除该字符。使用 String.replaceAll() 将允许您使用正则表达式来完成。

于 2013-07-30T11:30:47.707 回答
2

我相信你不能用 .trim()也许你可以寻找具有实用方法StringUtils#stripEnd()的 Apache commons 。

我没有对此进行测试,但希望它适用于您的目的:

string = string.replaceAll("\\s+$", "");  

另一种解决方案是反向遍历char[]从字符串中获得的并删除不需要的字符!

于 2013-07-30T11:31:58.917 回答
0

In .NET/C# you can use the TrimEnd method on your string object:

" this is linkedin ".TrimEnd();

于 2013-07-30T11:37:30.777 回答
0

如果您必须使用trim()方法,那么这可能会有所帮助:-

public class OP2 {
   public static void main(String[] s) {
      //object hash table 
       int index = 0;
       String s1 = "  sdfwf   ";
       for(int i=0;i<s1.length();i++)
       {
           if(s1.charAt(i)==' ')
               index = index + 1;
           else 
               break;
       }
       System.out.println(s1.substring(0,index)+ s1.trim());

   }
}
于 2013-07-30T11:35:38.570 回答
0

如果查询是针对 .net 语言的,那么您可以使用内置的 RTRIM 方法来实现相同的目的。

于 2013-07-30T11:35:56.237 回答
0

试试这个正则表达式

    str = str.replaceAll("(.+?) +", "$1");
于 2013-07-30T11:34:14.773 回答
0
public class RegexRemoveEnd {   
    public static String removeTrailingSpaces(String text) {
        return text.replaceAll(" +$", "");
    }
}
于 2013-07-30T11:41:33.853 回答