我怎样才能从一个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