Java 如何计算&引用;一致

Java 如何计算&引用;一致,java,Java,我想从文本文件中数一数“;” 例如,在我的文本文件中 案例1:INTA;int b 案例2:INTC 案例3:int x;int-y;intz 我的预期产量是 第1行有2个“;”在同一行 第2行中有1“;”行 第3行有3个“;”在同一行 我的代码 Scanner (input); while(in.hasNext()){ String line = in.nextLine(); in.hasNextLine();

我想从文本文件中数一数“;”

例如,在我的文本文件中

  • 案例1:INTA;int b
  • 案例2:INTC
  • 案例3:int x;int-y;intz
我的预期产量是

  • 第1行有2个“;”在同一行
  • 第2行中有1“;”行
  • 第3行有3个“;”在同一行
我的代码

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);
扫描仪(输入);
while(在.hasNext()中){
String line=in.nextLine();
in.hasNextLine();
LOC++;
if(line.length()>0){
k=-1;
if(line.indexOf(“;”))=1){
while(true){
k=第行索引(“;”);
如果(k你可以简单地做:

int c=0;
for(char ch : line.toCharArray())
{
    if(ch==';') c++;
}
您可以简单地执行以下操作:

int c=0;
for(char ch : line.toCharArray())
{
    if(ch==';') c++;
}

您可以简单地从字符串对象中的文件获取整个输入 并且可以使用正则表达式或split(;”)方法来获取其中任何模式的编号(例如split()情况下的数组大小)


如果只需要总共不需要任何模式,或者逐行使用它。

您只需从字符串对象中的文件获取整个输入即可 并且可以使用正则表达式或split(;”)方法来获取其中任何模式的编号(例如split()情况下的数组大小)


如果只需要总共不需要任何模式,或者逐行使用它。

您可以使用Apache提供的
StringUtils


您可以使用Apache中的
StringUtils


我会使用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();
}

我会使用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();
}
一种简洁(但效率低下)的方法是从字符串中去掉除
以外的所有内容,然后使用长度:

int numSemicolons = str.replaceAll("[^;]", "").length();
一种简洁(但效率低下)的方法是从字符串中去掉除
以外的所有内容,然后使用长度:

int numSemicolons = str.replaceAll("[^;]", "").length();

那么,你的代码有什么问题?当你运行它时会发生什么?那么,你的代码有什么问题?当你运行它时会发生什么?谢谢你的回答。:)谢谢你的回答。:)