Answers:
您可以为此使用String#replaceAll()模式^\"|\"$。
例如
string = string.replaceAll("^\"|\"$", "");要了解有关正则表达式的更多信息,请访问http://regular-expression.info。
也就是说,这有点像您要发明CSV解析器的味道。如果是这样,我建议您四处看看现有的库,例如OpenCSV。
String#indexOf(),String#substring(),方法等。速度只有一点点加快,但是代码更多。@GK:嗯,您是否阅读/理解了正则表达式,甚至进行了测试?
                    ^\"|\"$。|表示“或”。因此它将匹配^\"或\"$。^匹配字符串的开头和字符串$的结尾。^\"表示在字符串的开头\"$匹配一个引号,并在字符串的末尾匹配一个引号。
                    要从字符串中删除第一个字符和最后一个字符,请使用:
myString = myString.substring(1, myString.length()-1);同样与Apache StringUtils.strip():
 StringUtils.strip(null, *)          = null
 StringUtils.strip("", *)            = ""
 StringUtils.strip("abc", null)      = "abc"
 StringUtils.strip("  abc", null)    = "abc"
 StringUtils.strip("abc  ", null)    = "abc"
 StringUtils.strip(" abc ", null)    = "abc"
 StringUtils.strip("  abcyx", "xyz") = "  abc"所以,
final String SchrodingersQuotedString = "may or may not be quoted";
StringUtils.strip(SchrodingersQuotedString, "\""); //quoted no more如我的示例所示,此方法适用于带引号和不带引号的字符串。唯一的缺点是,它将不会查找严格匹配的引号,而只会查找前导和尾随的引号字符(即,"partially与"fully"引号字符串之间没有区别)。
如果双引号仅出现在开头和结尾,那么一个简单的代码就可以完美地工作:
string = string.replace("\"", "");
这是我发现从字符串的开头和结尾去除双引号的最佳方法。
someString.replace (/(^")|("$)/g, '')使用番石榴,您可以写得更优雅 CharMatcher.is('\"').trimFrom(mystring);
在Kotlin中,您可以使用String.removeSurrounding(delimiter:CharSequence)
例如
string.removeSurrounding("\"")当且仅当它以delimiter开头和结尾时,才从此字符串的开头和结尾删除给定的定界符字符串。否则,返回此字符串不变。
源代码如下所示:
public fun String.removeSurrounding(delimiter: CharSequence): String = removeSurrounding(delimiter, delimiter)
public fun String.removeSurrounding(prefix: CharSequence, suffix: CharSequence): String {
    if ((length >= prefix.length + suffix.length) && startsWith(prefix) && endsWith(suffix)) {
        return substring(prefix.length, length - suffix.length)
    }
    return this
}removeSurrounding()我在上面共享的方法对我来说也是一种Java开发人员都可以轻松理解的方法。
                    斯卡拉
s.stripPrefix("\"").stripSuffix("\"")不管字符串的开头和/或结尾是否带引号,此方法都有效。
编辑:对不起,仅Scala
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;
}要从Java中字符串的开头和结尾删除一个或多个双引号,您需要使用基于正则表达式的解决方案:
String result = input_str.replaceAll("^\"+|\"+$", "");如果您还需要删除单引号:
String result = input_str.replaceAll("^[\"']+|[\"']+$", "");注意:如果您的字符串包含"在其中,则此方法可能会导致问题(例如"Name": "John"=> Name": "John)。
String input_str = "\"'some string'\"";
String result = input_str.replaceAll("^[\"']+|[\"']+$", "");
System.out.println(result); // => some string