/ / čítanie vstupu zo súboru, kým sa nečíta konkrétne slovo - java, bufferedreader, filereader

čítanie vstupu zo súboru, kým nie je čítané konkrétne slovo - java, bufferedreader, filereader

Píšem program java na čítanie súboru a tlačový výstup do inej premennej typu string.which, ktorá pracuje dokonale tak, ako sa plánuje, je použitie kódu.

{
String key = "";
FileReader file = new FileReader("C:/Users/raju/Desktop/input.txt");
BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();

while (line != null) {
key += line;
line = reader.readLine();
}

System.out.println(key); //this prints contents of .txt file
}

to tlačí celý text v súbore.Ale chcem tlačiť iba riadky, kým sa v súbore nestretne slovo KONIEC.

príklad: ak súbor input.txt obsahuje nasledujúci text: tento testovací súbor END v

malo by sa tlačiť iba: tento testovací súbor

odpovede:

0 pre odpoveď č. 1

Jednoducho urobte jednoduchý index, aby ste zistili, kde to je aak existuje v riadku. Ak sa nájde inštancia, jednou možnosťou by bolo použitie podreťazcov na odrezanie všetkého až do indexu kľúčového slova. Pre trochu väčšiu kontrolu však skúste použiť java regulárne výrazy.

String key = "";
FileReader file = new FileReader("C:/Users/raju/Desktop/input.txt");
BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();

while ((line = reader.readLine()) != null && line.indexOf("Keyword to look for") == -1)
key += line;


System.out.println(key);

-1 pre odpoveď č. 2

Môžete to urobiť mnohými spôsobmi. jeden z nich používa indexOf metóda na zadanie počiatočného indexu "END" na vstupe a potom pomocou subString metóda.

pre viac informácií si prečítajte dokumentáciu String calss. TU


-1 pre odpoveď č. 3

Bude to fungovať pre váš problém.

    public static void main(String[] args) throws IOException {
String key = "";

FileReader file = new FileReader("/home/halil/khalil.txt");

BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();

while (line != null) {
key += line;
line = reader.readLine();
} String output = "";
if(key.contains("END")) {
output = key.split("END")[0];
System.out.println(output);
}
}

-1 pre odpoveď č. 4

Musíte zmeniť svoju logiku, aby ste skontrolovali, či riadok obsahuje „KONIEC“.

Ak END nebol nájdený v riadku, pridajte riadok do kľúča na naprogramovanie vášho programu

Ak áno, rozdeľte tento riadok do poľa slov, prečítajte si tento riadok, až kým sa nestretnete so slovom „KONIEC“ a pripojte ho k svojmu reťazcu kľúčov. Zvážte použitie Stringbuilderu pre kľúč.

   while (line != null) {

line = reader.readLine();
if(!line.contains("END")){
key += line;
}else{

//Note that you can use split logic like below, or use java substring
String[] words = line.split("");
for(String s : words){
if(s.equals("END")){
return key;
}
key += s;
}
}
}