Почему лидирующие пробелы не удаляются при использовании trim ()? - PullRequest
0 голосов
/ 10 марта 2012

Мне нужен доступ к исходным файлам java, и я использую метод trim () String для удаления любых начальных и конечных пробелов.Однако код, который является некоторой областью действия, например:

if(name.equals("joe")){
   System.out.println(name);
}

, пробелы для оператора печати не удаляются полностью.Есть ли способ удалить эти пробелы, пожалуйста?

Спасибо

РЕДАКТИРОВАТЬ: я использовал новую переменную:

String n = statements.get(i).toString().trim();
            System.out.println(n);

однако выводпо-прежнему выглядит так:

System.out.println("NAME:" + m.getName());
BlockStmt bs = m.getBody();
List<Statement> statements = bs.getStmts();
for (int i = 0; i < statements.size(); i++) {
    if ((statements.get(i).toString().trim().contains(needed)) & (statements.get(i).toString().trim().length() == needed.length())) {
        System.out.println("HEREEEEEEEEEEEEEEEEEEEEEEEEEE");
    }
}

Некоторые строки до сих пор содержат пробелы

Ответы [ 3 ]

5 голосов
/ 10 марта 2012

Вы ошибаетесь. Метод String.trim() позволяет полностью удалить начальную и конечную белую форму.

Однако я подозреваю, что ваша настоящая проблема в том, что вы не знаете, что это на самом деле означает. Строки Java являются неизменяемыми, поэтому trim() явно не изменяет целевой объект String. Вместо этого он возвращает новый экземпляр String с удаленными пробелами. Поэтому вам нужно использовать его следующим образом:

    String trimmed = someString.trim();
4 голосов
/ 10 марта 2012

Вы должны назначить результат строки.(Строка объекты являются неизменяемыми).

name=name.trim();
if(name.equals("joe")){
   System.out.println(name);
}
2 голосов
/ 10 марта 2012

Как упоминалось @home:

if(name.equals("joe")){
        String newName = name.trim();
        System.out.println(newName);
}

Должно работать

РЕДАКТИРОВАТЬ: Я предполагаю, что вы хотите использовать обрезку перед условиемМоя ошибка.

String newName = name.trim();

if(newName.equals("joe")){
        System.out.println(newName);
}
...