2012-11-14 42 views
1

我想解析一个字符串,我需要使用子字符串来做到这一点。该字符串包含撇号字符。我的问题是,如何使用temp来获取String.indexOf以获取撇号字符的索引?Java:使用String.indexOf()检查撇号字符

//temp variable currently contains the string 'hello' including the apostrophe character 
String finalWord = temp.substring(temp.indexOf('''), temp.indexOf('.')); 
+0

什么是你真的* *意欲何为?我相信你实际上并不关心撇号的位置。你试图让所有的字符在撇号之间,还是删除撇号,或什么? – Bohemian

+0

我是真的认真试图找到一种方法来存储每个单词的撇号周围,在它自己的变量,没有撇号。 – AnchovyLegend

+0

查看我的答案更直接的方法 – Bohemian

回答

9

你的变量名是错误的(final是一个保留字),你应该使用转义字符:

String finalword = temp.substring(temp.indexOf('\''), temp.indexOf('.')); 
+0

@MHZ请将您的确切代码复制粘贴到您的问题中,以便我们可以看到发生了什么。 – Bohemian

+0

我发现问题了,谢谢! :)这完美的作品。 – AnchovyLegend

0

根据您最后的评论,其中宣布你是什么实际上努力做...

有从输入提取每一个单引号引用的串一个简单的在线解决方案:

String[] quotedStrings = input.replaceAll("^.*?'|'[^']*$", "").split("'.*?('|$)"); 

下面是一些测试代码:

public static void main(String[] args) { 
    String input = "xxx'foo'xxx'bar'xxx'baz'xxx"; 
    String[] quotedStrings = input.replaceAll("^.*?'|'[^']*$", "").split("'.*?('|$)"); 
    System.out.println(Arrays.toString(quotedStrings)); 
} 

输出:

[foo, bar, baz]