java - 为什么我的 while 循环没有从文件中返回正确的值?

标签 java loops counter

我正在尝试编写一个简单的程序来计算 | 的数量管道分隔值文件中特定输入值出现之前的一行中出现的管道。

我尝试创建一个 while 循环,遍历文件的每个字符,并在每次 FileInputStream.read() 的值返回 124(Pipe 的字节值)时递增 1,但如果 FileInputStream.read 则重置为 0 () 返回 10(新行的字节值)并增加行计数器 + 1。

while((filereader=fis.read())!=searchValue){

        int filereader = byteVal;
        if(byteVal == 10)
        {
            lineCt++;
            finalPipCT = 0;

        if(byteVal == 124)
        {
           pipeCtr++;
        }
        finalPipCT = finalPipCt + lineCt;
        System.out.println("Data: " + sippyStraw + "\t" + (char)sippyStraw);


  }
  System.out.println("Total | in line: "+ finalPipCT );
  System.out.println("Total lines til value: "+ lineCt );
}

如果文本文件是这样的:

|a|b|c|

|d|e|f

|g|h|i|j|

|k|l|m||n|

并且 searchValue 是“h”,我希望它返回:

Total | in line: 2
Total Lines til value: 3

在值 h 匹配之前,从该行的开头开始,该行中出现的管道数。

最佳答案

这对我有用:

    String text = "|a|b|c|\n" + 
                "|d|e|f\n" + 
                "|g|h|i|j|";
    int lineCt = 1;
    int finalPipCT = 0;
    int searchVal = 104;

    for(int i = 0; i < text.length() && text.charAt(i) != 'h'; i++) {
    //while (scanner.hasNextByte() && (scanner.nextByte() != searchVal)) {
        int byteVal = (byte) text.charAt(i);

        if(byteVal == 10) {
                lineCt++;
                finalPipCT = 0;
        }

        if(byteVal == 124) {
            finalPipCT++;
        }   
    }

    System.out.println("Total | in line: "+ finalPipCT );
    System.out.println("Total lines til value: "+ lineCt );
<小时/>

我删除了一些东西,比如 "System.out.println("数据:"+ sippyStraw + "\t"+ (char)sippyStraw);"

和“finalPipCT = FinalPipCt + lineCt;”

我还使用了字符串而不是您的文件。

关于java - 为什么我的 while 循环没有从文件中返回正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58252180/

相关文章:

prolog - 在河内序言塔上实现计数器

C++ For循环初学错误输出

c++ - 尝试打印数组什么都不打印

Python 排序计数器

java - "Rotating"一个 ArrayList<Integer>

java - 用于递归深度优先搜索以存储路径的额外空间

java - 需要 Spring 事务的帮助来进行巨大的日期操作

java - 如何在 Java 中将二进制数据转换为字符串并返回?

postgresql - 多行的 Golang 慢速扫描()

python - 在 Python 中计算距圆形区域中心一定距离的值