java - 计算字符串 x 的实例数,直到找到字符串 y

标签 java eclipse windows

我已经尝试这样做大约一个小时左右,但只能编写出只能计数或只能搜索的代码。我的目标是组合一些东西,不仅会查找特定字符串(我们称之为“STRINGTOFIND”),而且还会计算另一个特定字符串(我们称之为“STRINGTOCOUNT”)的实例,直到找到“STRINGTOFIND”。

这是我的计算方法:

int count = 0;
Scanner scanner = new Scanner("example.xml");
while (scanner.hasNextLine()) {
   String nextToken = scanner.next();
   if (nextToken.equalsIgnoreCase("STRINGTOCOUNT"))
   count++;
}

这是我找到的方法(我想找到它的线):

int lineN = 1; //set to 1 for the loop to return correct line number
Scanner scanner = new Scanner("example.xml");
while (scanner.hasNextLine()) {
    lineNum++;
    if("STRINGTOFIND".equals(scanner.nextLine().trim())) { 
        System.out.println("found on line: "+lineNum);
    }
}

我想过寻找 STRINGTOFIND,获取它的行号,并使第一个扫描仪只计算 STRINGTOCOUNT 直到该行,但遗憾的是我的编程技能还不够。所以我的问题是,由于我已经有了代码来执行我想做的事情中的一件,我该如何组合这些?

最佳答案

您只需在循环中使用两个 if 语句。

boolean foundString = false;
int count = 0, lineNum = 1;
while(scanner.hasNextLine()){
    String line = scanner.nextLine();
    if(line.equals("STRINGTOFIND")){
        foundString = true;
        break; // Break out of the loop
    }
    else if(line.equals("STRINGTOCOUNT")) count++;
    lineNum++;
}
// Code that uses "foundString" and/or "lineNum"

此代码将计算与“STRINGTOCOUNT”匹配的行数,直到找到与“STRINGTOFIND”匹配的行或文件不再有未读取的行(lineNum 将包含发生此情况的行号)。

关于java - 计算字符串 x 的实例数,直到找到字符串 y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31173043/

相关文章:

windows - DataStage 11.3 装配编辑器闪存弹出窗口

java - Zk:如何创建具有数据绑定(bind)交互的 "load on demand"树?

java运行时getruntime exec超时返回退出总是NULL并且总是TimeoutException?

java - Android 中的安全性 - Google 应用引擎系统

java - 如何将 Netbeans 项目导入 Eclipse

c++ - 怎么知道哪段内存全为零

python - FFMPEG 转换为音频格式时不保存日志

java - 如何创建扩展 AuditingEntityListener 的自定义审核实体监听器

java - 使用Java源代码进行调试

java - eclipse spring mvc 项目中 servlet 不可用错误