У меня есть данные из файла CSV, который включается в одинарные кавычки, как:
'Company name'
'Price: $43.50'
'New York, New York'
Я хочу смочь заменить одинарные кавычки при запущении/заканчивании значения, но кавычек отпуска в данных, как:
'Joe's Diner' should become Joe's Diner
Я могу сделать
updateString = theString.replace("^'", "").replace("'$", "");
но я хотел знать, мог ли я объединить его, чтобы только сделать одну замену.
Можно использовать оператор or.
updateString = theString.replaceAll("(^')|('$)","");
Посмотрите, сработает ли это для вас :)
updateString = theString.replaceFirst("^'(.*)'$", "$1");
Обратите внимание, что форма, которой у вас нет, не будет работать, потому что replace
использует буквальные строки, а не регулярные выражения.
Это работает с использованием группы захвата (. *)
, которая упоминается с помощью $ 1
в тексте замены. Вы также можете сделать что-то вроде:
Pattern patt = Pattern.compile("^'(.*)'$"); // could be stored in a static final field.
Matcher matcher = patt.matcher(theString);
boolean matches = matcher.matches();
updateString = matcher.group(1);
Конечно, если вы уверены, что в начале и в конце есть одинарная кавычка, самое простое решение:
updateString = theString.substring(1, theString.length() - 1);