【发布时间】:2013-07-30 11:29:01
【问题描述】:
如何使用 string.trim() 方法仅在末尾修剪空白?
我的意思是不影响前面的空间
例如:输入:“这是链接的” o/p : "这是链接的"
【问题讨论】:
-
好吧,在这里,你不会使用
String.trim()。 -
Java 还是 .net/C#?你需要做出选择……
如何使用 string.trim() 方法仅在末尾修剪空白?
我的意思是不影响前面的空间
例如:输入:“这是链接的” o/p : "这是链接的"
【问题讨论】:
String.trim()。
【讨论】:
没有右修剪方法,但您可以通过多种变通方法来实现。 一种包括在字符串的开头放置一个非空白字符,修剪它,然后删除该字符。使用 String.replaceAll() 将允许您使用正则表达式来完成。
【讨论】:
我相信你不能用 trim() 做到这一点。也许你可以寻找具有实用方法 StringUtils#stripEnd() 的 Apache commons。
我尚未对此进行测试,但希望它适用于您的目的:
string = string.replaceAll("\\s+$", "");
另一种解决方案是遍历从反向字符串中获得的char[] 并删除不需要的字符!
【讨论】:
试试这个正则表达式
str = str.replaceAll("(.+?) +", "$1");
【讨论】:
如果您必须使用 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());
}
}
【讨论】:
如果查询是针对 .net 语言的,那么您可以使用内置的 RTRIM 方法来实现。
【讨论】:
在 .NET/C# 中,您可以在字符串对象上使用 TrimEnd 方法:
" this is linkedin ".TrimEnd();
【讨论】:
public class RegexRemoveEnd {
public static String removeTrailingSpaces(String text) {
return text.replaceAll(" +$", "");
}
}
【讨论】: