使用简单的扫描仪,读取带空格的字符串,为什么.trim()方法不起作用?

时间:2010-12-14 18:22:31

标签: java string trim

import java.util.Scanner;
import java.lang.String;

public class Test
{
    public static void main(String[] args)
    {
        char[] sArray;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter a Palindrome : ");
        String s = scan.nextLine();
        s = s.trim();

        sArray = new char[s.length()];

        for(int i = 0; i < s.length(); i++)
        {
            sArray[i] = s.charAt(i);
            System.out.println(sArray[i]);
        }
    }
}

3 个答案:

答案 0 :(得分:4)

修剪不符合您的预期。 trim()仅从字符串末尾删除空格。

documentation for trim()

  

返回字符串的副本,省略前导尾随空格。

要删除所有空格,请尝试以下操作,而不是调用trim()

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

这使用一个非常简单的正则表达式来删除字符串中任何位置的所有空格。

答案 1 :(得分:2)

trim函数会删除前导和尾随空格,而不是所有空格。

如果要删除所有空格,可以拨打s = s.replaceAll(" ", "")

答案 2 :(得分:0)

很好的回答jjnguy和slals

我现在用

myinput = myEditTextbox.getText().toString;
myinput = myinput.replaceAll("\\S+", "");

清除用户意外遗留在edittext框中的所有空格。 它还指导我学习我不知道的正则表达式。 感谢