1

ファイルを読み取った後にindexOfを使用すると、単語の前後の特定の文字のみに対してindexOfをどのようにコーディングしますか?

例えば

「ビリー」

一重引用符:2

bi'lly

一重引用符:0

私のコード

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

私のコードはすべての一重引用符をカウントします。たくさんの単語を含むファイルを読み取るときに、どうすればそうすることができますか。各単語の最初と最後で一重引用符のみを取得するには?

4

2 に答える 2

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ます。

于 2012-10-17T00:13:42.657 に答える
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);
于 2012-10-17T00:40:51.593 に答える