Как я могу обрезать начало и конец двойных кавычек из строки? - PullRequest
116 голосов
/ 09 апреля 2010

Я хотел бы обрезать начало и конец двойной кавычки (") из строки.
Как я могу добиться этого в Java? Спасибо!

Ответы [ 16 ]

2 голосов
/ 18 декабря 2015
private static String removeQuotesFromStartAndEndOfString(String inputStr) {
    String result = inputStr;
    int firstQuote = inputStr.indexOf('\"');
    int lastQuote = result.lastIndexOf('\"');
    int strLength = inputStr.length();
    if (firstQuote == 0 && lastQuote == strLength - 1) {
        result = result.substring(1, strLength - 1);
    }
    return result;
}
1 голос
/ 23 декабря 2016

Чтобы удалить одну или несколько двойных кавычек из начала и конца строки в Java, вам нужно использовать решение на основе регулярных выражений:

String result = input_str.replaceAll("^\"+|\"+$", "");

Если вам также необходимо удалить одинарные кавычки:

String result = input_str.replaceAll("^[\"']+|[\"']+$", "");

ПРИМЕЧАНИЕ : Если ваша строка содержит " внутри, такой подход может привести к проблемам (например, "Name": "John" => Name": "John).

См. Java-демонстрацию здесь :

String input_str = "\"'some string'\"";
String result = input_str.replaceAll("^[\"']+|[\"']+$", "");
System.out.println(result); // => some string
0 голосов
/ 24 апреля 2019

Немного изменив ответ @ brcolow

if (string != null && string.length() >= 2 && string.startsWith("\"") && string.endsWith("\"") {
    string = string.substring(1, string.length() - 1);
}
0 голосов
/ 27 января 2019

Отредактировано: только что понял, что я должен указать, что это работает, только если они оба существуют. В противном случае строка не считается кавычкой. Такой сценарий появился у меня при CSV-файлах.

org.apache.commons.lang3.StringUtils.unwrap("\"abc\"", "\"")    = "abc"
org.apache.commons.lang3.StringUtils.unwrap("\"abc", "\"")    = "\"abc"
org.apache.commons.lang3.StringUtils.unwrap("abc\"", "\"")    = "abc\""
0 голосов
/ 18 сентября 2015
Matcher m = Pattern.compile("^\"(.*)\"$").matcher(value);
String strUnquoted = value;
if (m.find()) {
    strUnquoted = m.group(1);
}
0 голосов
/ 09 апреля 2010

найти индексы каждой двойной кавычки и вставить туда пустую строку.

...