我怎样才能从一个string修剪开始和结束双引号?

我想修剪一个string开始和结束双引号(“)。
我怎样才能在Java中实现呢? 谢谢!

您可以使用String#replaceAll() ,其格式为^\"|\"$

例如

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

要了解有关正则expression式的更多信息,请访问http://regular-expression.info

这就是说,这有点像你试图发明一个CSVparsing器。 如果是这样,我会build议寻找现有的库,如OpenCSV 。

要从string中删除第一个字符和最后一个字符,请使用:

 myString = myString.substring(1, myString.length()-1); 

使用番石榴,你可以写更优雅的CharMatcher.is('\"').trimFrom(mystring);

这是我发现的最好的方法,从string的开头和结尾去掉双引号。

 someString.replace (/(^")|("$)/g, '') 

首先,我们检查一下string是否加了双引号,如果是这样,请删除它们。 如果实际上你知道它是双引号,你可以跳过条件。

 if (string.length() >= 2 && string.charAt(0) == '"' && string.charAt(string.length() - 1) == '"') { string = string.substring(1, string.length() - 1); } 

如果双引号只存在于开始和结尾,那么一个简单的代码就可以很好地工作:

string = string.replace("\"", "");

 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; } 

还有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 

这个方法可以用引用和不引用的string,如我的例子所示。 唯一的缺点是,它不会查找严格匹配的引号,只会引用和结尾的引号字符(即"partially"fully"引用string之间没有区别)。

find每个双引号的索引并在其中插入一个空string。

 Matcher m = Pattern.compile("^\"(.*)\"$").matcher(value); String strUnquoted = value; if (m.find()) { strUnquoted = m.group(1); } 

要从Java中的string的开头和结尾删除一个或多个双引号,您需要使用基于正则expression式的解决scheme:

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

如果您还需要删除单引号:

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

:如果你的string包含"里面,这种方法可能会导致问题(例如"Name": "John" => Name": "John )。

在这里看到一个Java演示 :

 String input_str = "\"'some string'\""; String result = input_str.replaceAll("^[\"']+|[\"']+$", ""); System.out.println(result); // => some string