Przeszukałem wszystkie tematy i ponieważ nie znalazłem podobnego problemu, chciałbym zadać następujące pytanie:
Biorąc pod uwagę przykładowy kod:
try (BufferedReader helpRdr= new BufferedReader (new FileReader (helpfile))){
do {
//read characters until # is found
ch= helpRdr.read();
//now see if topics match
if (ch=='#') {
topic= helpRdr.readLine();
if (what.compareTo(topic)==0) { //found topic
do {
info=helpRdr.readLine();
if (info!=null) System.out.println (info);
} while ((info!=null) && (info.compareTo("")!=0));
Oraz przykładową zawartość pliku:
"#if if (warunek) instrukcja; instrukcja else; "
Pytanie brzmi:
Dlaczego metoda readLine() w powyższym przykładzie nie odczytuje '#', zamiast tego ma następującą instrukcję output:if (warunek); oświadczenie w przeciwnym razie;
Z góry dziękuję za pomoc!
1 odpowiedź
Dzieje się tak, ponieważ już przeczytałeś znak #
i dlatego nie ma go już, gdy robisz read()
lub readLine()
.
Co możesz zrobić, to:
String ch = helpRdr.readLine();
if (ch.startsWith("#")) {
// Do your stuff
}
Albo to:
topic = ch + helpRdr.readLine();
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].