С помощью простого сканера, чтения строки с пробелами, почему метод .trim () не работает? - PullRequest
1 голос
/ 14 декабря 2010
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 ]

4 голосов
/ 14 декабря 2010

Trim не работает так, как вы ожидаете.trim() удаляет только пробелы с концов строки.

Документация для trim():

Возвращает копию строки с ведущий и завершающий пробелы пропущены.

Чтобы удалить все пробелы, вместо вызова trim():

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

Thisиспользует очень простое регулярное выражение для удаления всех пробелов в любом месте строки.

2 голосов
/ 14 декабря 2010

Функция trim удаляет начальные и конечные пробелы , а не все пробелы.

Если вы хотите удалить все пробелы, вы можете вызвать s = s.replaceAll(" ", "").

0 голосов
/ 16 февраля 2011

отличный ответ jjnguy и slals

Я сейчас использую

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

для очистки всех пробелов, случайно оставленных в поле для редактирования текста пользователем. Это также побудило меня узнать о регулярных выражениях, о которых я не знал. Спасибо

...