读取文件后使用 indexOf,如何仅对单词前后的特定字符编码 indexOf?
例如
“比利”
单引号:2
比利
单引号:0
我的代码
if ( 0 <= name.indexOf("'")){
singleQuotes++;
我的代码将计算所有单引号,当它读取包含一堆单词的文件时,我该如何做到这一点。只在每个单词的开头和结尾获取单引号?
读取文件后使用 indexOf,如何仅对单词前后的特定字符编码 indexOf?
例如
“比利”
单引号:2
比利
单引号:0
我的代码
if ( 0 <= name.indexOf("'")){
singleQuotes++;
我的代码将计算所有单引号,当它读取包含一堆单词的文件时,我该如何做到这一点。只在每个单词的开头和结尾获取单引号?
如果您不想使用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);
您可以为此使用正则表达式。您需要的表达式如下所示:
(^|\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
。