Удаление пробелов в строке Java? - PullRequest
4 голосов
/ 01 марта 2010

Я пишу парсер для некоторых файлов LISP. Я пытаюсь избавиться от ведущих пробелов в строке. Содержимое строки выглядит следующим образом:

         :FUNCTION (LAMBDA
                   (DELTA
                    PLASMA-IN-0)
                 (IF
                  (OR
                   (>=
                    #61=(+
                         (*
                          1
                          DELTA)
                         PLASMA-IN-0)
                    100)
                   (<=
                    #61#
                    0))
                  PLASMA-IN-0
                  #61#))

Вкладки все печатаются как 4 пробела в файле, поэтому я хочу избавиться от этих ведущих вкладок.

Я пытался сделать это: string.replaceAll("\\s{4}", " ") - но это никак не повлияло на строку.

Кто-нибудь знает, что я делаю не так? Это потому, что это многострочная строка?

Спасибо

Ответы [ 2 ]

8 голосов
/ 01 марта 2010
String.trim();

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

1 голос
/ 17 июня 2010

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

string.replaceAll("\\s{4}", " ")

РЕДАКТИРОВАТЬ : Я не осознавал, что вы на самом деле не забыли избежать обратной косой черты, и что переполнение стека "съело" одну из ваших обратных косых черт, как Алан Мур указано в одном из комментариев к этому ответу (единственное различие между "\ s" и "\\s" - это обратные метки вокруг текста). При этом, мой первоначальный ответ не очень поможет вам, так что ...

Чтобы это было эффективным, вы должны что-то сделать с выводом из String # replaceAll , так как он возвращает новую строку вместо изменения существующей ( Строки являются неизменяемыми , а Уильям Брендель отметил в своем комментарии к вашему вопросу).

string = string.replaceAll("\\s{4}", " ")

Поскольку этот ответ на самом деле не добавляет ничего ценного, вместо того, чтобы удалить его, я делаю его вики сообщества.

...