Я пытаюсь написать простую программу для подсчета количества |трубы, которые появляются в строке до того, как определенное входное значение встречается в файле значений, разделенных трубами.
Я попытался создать цикл while, который проходит через каждый символ файла и увеличивает его на 1 каждый раз, когда значение FileInputStream.read () возвращает 124 (значение байта для Pipe), но затем сбрасывается на 0, еслиFileInputStream.read () возвращает 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
Общее количество строк до значения: 3
Количество каналов, которые встречаются в строке от начала указанной строки до совпадения значения h.