我想算“;”从文本文件中排成一行。
实施例。在我的文本文件中
我的预期结果是
我的代码
Scanner (input);
while(in.hasNext()){
String line = in.nextLine();
in.hasNextLine();
LOC++;
if (line.length() >0){
k = -1;
if(line.indexOf(";") != 1){
while(true){
k = line.indexOf(";");
if(k<0)break;
cCommand++;
}
}
}
}
System.out.println(output);
感谢您的回答。
答案 0 :(得分:3)
您可以这样做:
int c=0;
for(char ch : line.toCharArray())
{
if(ch==';') c++;
}
答案 1 :(得分:1)
简洁(但效率低下)的方法是从字符串中删除除;
之外的所有内容,然后使用长度:
int numSemicolons = str.replaceAll("[^;]", "").length();
答案 2 :(得分:0)
您可以简单地从String对象中获取文件的整个输入 并且可以使用正则表达式或拆分(&#34 ;;&#34;)方法来获取否。任何模式(例如,split()的情况下的数组大小)。
如果只需要完全没有图案或逐行使用它。
答案 3 :(得分:0)
您可以使用Apache Common Lang
中的StringUtils
int count = StringUtils.countMatches("case 3: int x; int y; int z;", ";");
答案 4 :(得分:0)
我会使用commons.utils.FileUtils和StringUtils,如下所示:
LineIterator it = FileUtils.lineIterator(file, "UTF-8");
try {
while (it.hasNext()) {
String line = it.nextLine();
int countThe = StringUtils.countMatches(line, ";");
}
} finally {
it.close();
}