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("\"", "");
замените двойную кавычку строкой без символов.