Java-эквивалент для Python str.strip () - PullRequest
11 голосов
/ 06 марта 2012

Предположим, я хотел бы удалить все ", окружающие строку.В Python я бы:

>>> s='"Don\'t need the quotes"'
>>> print s
"Don't need the quotes"
>>> print s.strip('"')
Don't need the quotes

И если я хочу удалить несколько символов, например " и круглые скобки:

>> s='"(Don\'t need quotes and parens)"'
>>> print s
"(Don't need quotes and parens)"
>>> print s.strip('"()')
Don't need quotes and parens

Какой элегантный способ вырезать строку в Java

Ответы [ 5 ]

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

Предположим, я хотел бы удалить все ", окружающие строку

. Ближайший эквивалент кода Python:

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

Иесли я хочу удалить несколько символов, например " и круглые скобки:

s = s.replaceAll("^[\"()]+", "").replaceAll("[\"()]+$", "");

Если вы можете использовать Apache Commons Lang , есть StringUtils.strip().

6 голосов
/ 06 марта 2012

В библиотеке Guava есть удобная утилита.Библиотека содержит CharMatcher.trimFrom(), которая делает то, что вы хотите.Вам просто нужно создать CharMatcher, который соответствует символам, которые вы хотите удалить.

Код:

CharMatcher matcher = CharMatcher.is('"');
System.out.println(matcher.trimFrom(s));

CharMatcher matcher2 = CharMatcher.anyOf("\"()");
System.out.println(matcher2.trimFrom(s));

Внутренне это не создает новую строку, а просто вызывает s.subSequence().Поскольку он также не требует регулярных выражений, я думаю, что это самое быстрое решение (и, конечно, самое чистое и простое для понимания).

1 голос
/ 06 марта 2012

В Java вы можете сделать это следующим образом:

s = s.replaceAll("\"",""),replaceAll("'","")

Также, если вы хотите заменить только кавычки «Начало» и «Конец», вы можете сделать что-то вроде:

s = s.replace("^'", "").replace("'$", "").replace("^\"", "").replace("\"$", "");

ИЛИ если проще сказать:

s = s.replaceAll("^\"|\"$", "").replaceAll("^'|'$", "");
0 голосов
/ 06 марта 2012

попробуйте это:

new String newS = s.replaceAll("\"", "");

замените двойную кавычку на строку без символов.

0 голосов
/ 06 марта 2012

Заменяет " и () в начале и конце строки

String str = "\"te\"st\"";
str = str.replaceAll("^[\"\\(]+|[\"\\)]+$", "");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...