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ď č. 1Jednoducho 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;
}
}
}