indexOn读取文件时在特定位置的特定字符

时间:2012-10-17 00:11:49

标签: java

在读取文件后使用indexOf,如何只对一个单词前后的特定字符编码indexOf?

例如

'比利'

单引号:2

bi'lly

单引号:0

我的代码

if ( 0 <= name.indexOf("'")){
        singleQuotes++;

我的代码会计算所有单引号,如何在读取带有大量单词的文件时才能这样做。只能在每个单词的开头和结尾处获得单引号?

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式。您需要的表达式如下所示:

(^|\s)'|'(\s|$)

Pattern p = Pattern.compile("(^|\\s)'|'(\\s|$)");
Matcher m = p.matcher("quick 'brown' fox jump's over 'the' lazy dog");
int cnt = 0;
while(m.find()) {
    cnt++;
}
System.out.println(cnt);

打印出4

答案 1 :(得分:1)

如果您不想使用regex,那么您可以编写如下内容:

    String myString = "quick 'brown' fox jump's over 'the' lazy dog";
    int count = 0;

    String[] words = myString.split(" ");
    for(int i=0; i <words.length; i++){
        if(words[i].charAt(0) == '\'' ){
            count++;
        }
        if(words[i].charAt(words[i].length()-1) == '\'' ){
            count++;
        }
    }
    System.out.println(count);