Java: заменить "[" "]" из строк текстовых файлов - PullRequest
6 голосов
/ 20 февраля 2011

Я использую

str.replaceAll("GeoData[", "");

для замены символа "[" в некоторых строках в моем текстовом файле, но я получаю:

Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 7
GeoData[
       ^
    at java.util.regex.Pattern.error(Pattern.java:1713)

как я могу решить это?

Ответы [ 2 ]

17 голосов
/ 20 февраля 2011

Метод replaceAll интерпретирует аргумент как регулярное выражение.В регулярном выражении вы должны экранировать [, если вам нужно его буквальное значение, иначе оно интерпретируется как начало класса символов.

str = str.replaceAll("GeoData\\[", "");

Если вы не намеревались использовать регулярное выражение, тогда используйтеreplace вместо этого, как упоминает Божо в своем ответе .

11 голосов
/ 20 февраля 2011

Используйте метод без регулярных выражений String.replace(..): str.replace("GeoData[", "")

(Люди склонны пропускать этот метод, потому что он принимает CharSequence в качестве аргумента, а не String. Но String реализует CharSequence)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...