【发布时间】:2019-10-05 20:40:45
【问题描述】:
我正在尝试编写一个简单的程序来计算 | 的数量在管道分隔值文件中出现特定输入值之前出现在一行中的管道。
我尝试创建一个 while 循环,该循环遍历文件的每个字符,并且每次 FileInputStream.read() 的值返回 124(管道的字节值)时递增 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”,我希望它返回:
总计 |排队:2
总行数 til 值:3
在值 h 匹配之前,从所述行的开头开始在该行中出现的管道数。
【问题讨论】:
-
您没有正确关闭您的第一个
if。投票结束为错字。 -
您的代码无法编译。你是如何测试这个的?