Я пытаюсь написать программу, которая читает файл, затем распечатывает его, а затем снова читает его, но выводит только те строки, которые начинаются с «The» во второй раз. он распечатывает содержимое файла, но затем не выводит строки, начинающиеся с «The», и я не могу понять, почему. он выводит строку println прямо перед циклом, но затем полностью игнорирует цикл for. единственное различие между моим методом findThe и моим методом OutputTheArray заключается в подстроке, поэтому я думаю, что это проблемная область, но я не знаю, как это исправить.
import java.util.*;
import java.io.*;
public class EZD_readingFiles
{
public static int inputToArray(String fr[], Scanner sf)
{
int max = -1;
while(sf.hasNext())
{
max++;
fr[max] = sf.nextLine();
}
return max;
}
public static void findThe(String fr[], int max)
{
System.out.println("\nHere are the lines that begin with \"The\": \n");
for(int b = 0; b <= max; b++)
{
String s = fr[b].substring(0,4);
if(s.equals("The "))
{
System.out.println(fr[b]);
}
}
}
public static void OutputTheArray(String fr[], int max)
{
System.out.println("Here is the original file: \n");
for(int a = 0; a <= max; a++)
{
System.out.println(fr[a]);
}
}
public static void main(String args[]) throws IOException
{
Scanner sf = new Scanner(new File("EZD_readme.txt"));
String fr[] = new String[5];
int y = EZD_readingFiles.inputToArray(fr,sf);
EZD_readingFiles.OutputTheArray(fr,y);
int z = EZD_readingFiles.inputToArray(fr,sf);
EZD_readingFiles.findThe(fr,z);
sf.close();
}
}
это мой текстовый файл с данными тестера (EZD_readme.txt):
Каждый человек старается изо всех сил.
Лучший способ - это так.
График очень хороший.
Космо Крамер - глупец.
Лучший фильм был отменен.