Сколько пробелов удалит Java String.trim ()? - PullRequest
119 голосов
/ 04 февраля 2010

В Java у меня есть такая строка:

"     content     ".

Будет ли String.trim() удалять все пробелы с этих сторон или только один пробел с каждой?

Ответы [ 17 ]

2 голосов
/ 03 сентября 2011

Одна очень важная вещь заключается в том, что строка, состоящая полностью из «пробелов», вернет пустую строку.

если string sSomething = "xxxxx", где x обозначает пробелы, sSomething.trim() вернет пустую строку.

если string sSomething = "xxAxx", где x обозначает пробелы, sSomething.trim() вернет A.

если sSomething ="xxSomethingxxxxAndSomethingxElsexxx", sSomething.trim() вернет SomethingxxxxAndSomethingxElse, обратите внимание, что число x между словами не изменяется.

Если вам нужна аккуратная пакетная строка, объедините trim() с регулярным выражением, как показано в этом сообщении: Как удалить дублирующиеся пробелы в строке с помощью Java? .

Порядок для результата не имеет смысла, но сначала trim() будет более эффективным. Надеюсь, это поможет.

2 голосов
/ 04 февраля 2010

Удалит все пробелы с обеих сторон.

2 голосов
/ 03 мая 2013

Чтобы сохранить только один экземпляр для строки, вы можете использовать следующее.

str = "  Hello   ";

или

str = str.trim();

Тогда значение строки str будет str = "Hello"

0 голосов
/ 04 февраля 2010

Если вы хотите проверить, что будет делать какой-либо метод, вы можете использовать BeanShell .Это язык сценариев, разработанный так, чтобы быть как можно ближе к Java.Вообще говоря, это интерпретируется Java с некоторыми расслаблениями.Другой вариант такого типа - Groovy язык.Оба эти языка сценариев обеспечивают удобный цикл чтения-Eval-Print, известный из интерпретируемых языков.Таким образом, вы можете запустить консоль и просто набрать:

"     content     ".trim();

В результате вы увидите "content" после нажатия Enter (или Ctrl+R в консоли Groovy).

0 голосов
/ 04 февраля 2010

Javadoc для String содержит все детали. Удаляет пробелы (пробелы, табуляции и т. Д.) С обоих концов и возвращает новую строку.

0 голосов
/ 04 февраля 2010

Trim () работает для обеих сторон.

0 голосов
/ 18 декабря 2012
String formattedStr=unformattedStr;
formattedStr=formattedStr.trim().replaceAll("\\s+", " ");
...