Java-эквивалент для Python str.strip()

Предположим, я хотел бы удалить все ", окружающие строку. В 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?

Ответ 1

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

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

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

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

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

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

Ответ 2

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

код:

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

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

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

Ответ 3

В java вы можете сделать это как:

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

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

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

ИЛИ, если просто поставить:

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

Ответ 4

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

String str = "\"te\"st\"";
str = str.replaceAll("^[\"\\(]+|[\"\\)]+$", "");

Ответ 5

попробуйте следующее:

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

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