我无法理解为什么trim()在这种情况下不起作用。请验证以下代码 -
Scanner sc=new Scanner(System.in);
System.out.print("Enter a string:");
String s=sc.nextLine();
System.out.println("length is:"+s.length());
System.out.println("trimmed length is:"+
s.trim().length());
现在,如果我在控制台中输入一个字符串,中间使用空格,则长度和修剪长度都显示相同的值。请注意,它在程序本身输入的字符串工作正常,即。 String s=" Man "
工作正常,但为什么不是。
答案 0 :(得分:3)
String#trim()
仅删除前导空格和尾随空格,而不删除字符之间的空格:
返回字符串的副本,包含前导和尾随空格 删去。
答案 1 :(得分:0)
在使用它之前,请务必阅读函数的文档,以确定它是否真正按照您的意图执行。如果没有,那么有任何解决方法吗?如果是,那么哪个将是最优化的,这是你可以在SO上发布的地方(只是一个建议的课程)。
在你的情况下,here是String的trim()函数的文档。正如它清楚地说Returns a copy of the string, with leading and trailing whitespace omitted
你不能用它来删除单词之间的空格。您可能想尝试
s.replaceAll(" ", "").length();
您可以查看相同here的文档。
答案 2 :(得分:0)
似乎工作正常,确保你输入没有“”的输入,比如 -----男人----不喜欢“----男人----”,其中 - 是空格,因为trim()修剪前导空格和尾随空格而不是字符之间的空格。