从Java字符串的每一侧精确修剪一个引用的最佳方法

时间:2016-08-24 22:55:13

标签: java string

我希望能够从java字符串的每一边修剪一个引用。以下是一些例子。

"foo" - > foo

"foo\"" - > foo\"

"\"foo\"" - > \"foo\"

我目前正在使用常见语言中的StringUtils.trim但是当我使用转义引号结束字符串时,它也会修剪它,因为它们是连续的。我希望能够完全修改一个引用。

3 个答案:

答案 0 :(得分:0)

我最终使用org.apache.commons.lang3.StringUtils.substringBetween并且有效。

答案 1 :(得分:0)

您也可以使用substring()方法并根据条件修剪第一个和最后一个字符,尽管它有点长。

trimedString= s.substring((s.charAt(0)=='"')?1:0 , (s.charAt(s.length()-1)=='"')?s.length()-1:s.length());

答案 2 :(得分:0)

我更喜欢使用这个String方法

public String [] split(String regex)

基本上如果你输入引号,那么你将获得一个字符串数组,其中包含引号之间的所有块。

String[] parts = originalString.split("\""); 
String quoteReduced = parts[0];
for (int i = 1; i < (parts.length() -1); i++){
    quoteReduced = quoteReduced.concat( parts[i] +"\"" );
}
quoteReduced = quoteReduced.concat( "\"" +parts[parts.length()-1]);

虽然它可能不是最直接的,但这是我解决这个问题的方式。第一部分和最后一部分可以包含在循环中,但需要if语句。