Line-Fehler

Moin an alle,
mein Problem ist,
dass ich nicht verstehe warum die zweite line nicht ins if sondern ins else reingeht während die erste line in ins if geht. Wäre toll, wenn es mir jemand erklären könnte. Auf Google hab ich nur Sachen mit StringBuffur oder Reader gefunden.

Java:
public void aufgabe(int y) {
        String line = "";
       
       
        for (int x = 0; x < y; x++) {
            line = s.nextLine();   
           
           
            System.out.println(line + " Vor dem If");   
            if(line.startsWith(">")){
                System.out.println(line + " Nach dem If");           
            }else{
                System.out.println(line + " Im else");
                do{
                    line = s.nextLine();
                    x++;
                    System.out.println(x);   
                }while(line.isEmpty() == false);
                System.out.println("geschaft");   
            }
        }
    }

Ich hab den Rest des Programms als PNG angeheftet.
Vielen dank im voraus.

m.f.G.: Masterofdarkniss
PS: Ja, ich hab die Fehlermeldung in der Console gesehen ^^.
 

Anhänge

  • test1.PNG
    test1.PNG
    25,3 KB · Aufrufe: 30
  • testMain.PNG
    testMain.PNG
    9,9 KB · Aufrufe: 25
  • TXT.PNG
    TXT.PNG
    2 KB · Aufrufe: 23
  • Compiler.PNG
    Compiler.PNG
    3,9 KB · Aufrufe: 21
Zuletzt bearbeitet:

Joose

Top Contributor
Code bitte in Code-Tags geben, danke :)
[code=java] ... dein code ... [/code]

Zu deinem Problem:
Lass dir doch mal den Inhalt von "anfang" vor dem if ausgeben. Damit du siehst was auf dem String draufsteht, möglicherweise nicht das was du erwartest ;)
Oder falls du eine IDE verwendest, kannst du den Debugger verwenden und dir den Inhalt zur Laufzeit anschauen.
 
Zuletzt bearbeitet:

Robat

Top Contributor
Da kann ich Joose nur zustimmen.
Lass dir mal den Wert von anfang ausgeben.

BTW:
Anstatt dir jedesmal den Substring zu holen, könntest du auch String#startsWith(String str) verwenden.
Die Methode gibt true zurück, falls ein String mit der Sequenz (als Parameter in dem Klammern) beginnt.
Macht den Code mMn übersichtlicher und (für dich/für andere) leichter zu verstehen.
 
Danke für die schnellen Antworten,
ich hab den Code oben angepasst, die Console zeigt mir an

Total number of lines : 7
> Starte File Vor dem If
> Starte File Im else
1
2
3
4
5
geschaft
> END File Vor dem If
> END File Nach dem If

Ich hoffe, ich hab den Befehl richtig implementiert "
Java:
String#startsWith(String str)
"

Das Programm springt von if in else, obwohl die klammern (laut Eclips) richtig gesetzt wurden.
 

Joose

Top Contributor
Ich hoffe, ich hab den Befehl richtig implementiert "
Java:
String#startsWith(String str)
"?
Funktioniert es denn? Dann ist es richtig ;)
Weißt du schon was dein Fehler vorher war? Um auf das erste Zeichen eines Strings zuzugreifen musst du auf Index 0 zugreifen ;)

Wenn du nicht weiß was die Methode genau macht dann ist es immer ratsam in die Dokumentation zu schauen.
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#startsWith(java.lang.String)
 

Robat

Top Contributor
An einem simplen Beispiel erklärt:
Java:
// Du hast einen String den du testen willst
String testString = "Den String will ich test";

// Und du hast einen String, der deine Pattern enthält,
// also auf was du prüfen willst
String prüfString = "Den";

if(testString.startsWith(prüfString)
{
     System.out.println("Der String beginnt mit " + prüfString);
}

// Die Methode schaut also ob dein String auf den du die Methode anwendest mit dem Ausdruck startet, der in Klammern als Parameter übergeben wird.
// Wenn das der Fall ist gibt sie true zurück und deine if-Bedingung wird true.
//In deinem Fall könnte man also sagen

if(line.startsWith(">") { .. }

Genaueres kannst du hier nachlesen.

PS: da war wohl jemand schneller :p
 
Nein es funktioniert leider nicht :(, laut der If-aussage müsste er in die if-Anweisung gehen, wenn der Satz mit ">" beginnt ,aber leider geht er trotzdem in die Else Anweisung.
Es wird das richtige abgefragt und die Bedingung ist erfüllt.

Java:
    public void aufgabe(int y) {
        String line = "";
        for (int x = 0; x < y; x++) {
            line = s.nextLine();
            System.out.println(line + " Vor dem If");
            if(line.startsWith(">")){
                System.out.println(line + " Im If");        
            }
            else{
                System.out.println(line + " Im else");
                do{
                    line = s.nextLine();
                    x++;
                    System.out.println(x);
                }while(line.isEmpty() == false);
                System.out.println("geschaft");
            }
        }
    }

Der String ist "> Starte File" und ausgegeben wird
"> Starte File Vor dem If"
"> Starte File Im else"
und nicht wie es korrekt wäre "> Starte File Im If"
 
Ok ich weiß nicht warum aber es funktioniert.

Java:
    public void aufgabe(int y) {
        String line = "";
        String subLine = "";
      
        for (int x = 0; x < y; x++) {
            line = s.nextLine();
            subLine = line.substring(1, 2);
            System.out.println(line + " Vor dem If" );
            if (line.startsWith(">")||subLine.equals(">")) {
                System.out.println(line + " Im If");
            } else {
                System.out.println(line + " Im else");
                do {
                    line = s.nextLine();
                    x++;
                    System.out.println(x);
                } while (line.isEmpty() == false);
                System.out.println("geschaft");
            }
        }
    }

PS: Nein es ist kein Leerzeichen vor dem ">" gewesen aber nagut.
 

Robat

Top Contributor
Kontrollier noch mal dein File.. irgendwas kann da nicht stimmen
Hab dein Projekt mal quick'n'dirty nachgebaut mit
Code:
> Starte File
> BEGINE
ABCD
> Hallo
> Hallo

> END

und

Java:
public static void main(String[] args)
{

        File f = new File("C:\\Users\\Robert\\Desktop\\bla.txt");

        Scanner s = null;
        try {
            s = new Scanner(f);
        } catch (FileNotFoundException ex) {
            System.err.println("Error: " + ex);
        }
       
        String line = "";
        while(s.hasNextLine()) {
            line = s.nextLine();
            System.out.println(line + " Vor dem If");
            if(line.startsWith(">")){
                System.out.println(line + " Im If");        
            }
            else{
                System.out.println(line + " Im else"); 
            }
       }
        System.out.println("geschaft");
    }
}

Und mein Output ist:

Code:
> Starte File Vor dem If
> Starte File Im If
> BEGINE Vor dem If
> BEGINE Im If
ABCD Vor dem If
ABCD Im else
> Hallo Vor dem If
> Hallo Im If
> Hallo Vor dem If
> Hallo Im If
 Vor dem If
 Im else
> END Vor dem If
> END Im If
geschaft

Was richtig sein sollte.

Hab jetzt dein Else-Block nicht genauso, sollte aber kein Problem sein.

Und mal eine Frage: was ist dein y? wo kommt das her?
Liegt da vielleicht der Fehler?
Wenn du das File einfach nur durchlaufen willst bis es zu Ende ist dann nimm, so wie ich, Scanner#hasNextLine();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
Meeresgott 2D-Grafik Bresenham's line algorithm Allgemeine Java-Themen 37
G GUI-basiertes Java-Program in Command-line Version umwandeln Allgemeine Java-Themen 1
B Input/Output BufferedWriter/Reader replace line Allgemeine Java-Themen 6
F TrueType-Font in Single-Line-Font wandeln Allgemeine Java-Themen 0
G UUencoding bring Fehlermeldung: No beginn line / Missing 'end' line Allgemeine Java-Themen 0
B go to Line Allgemeine Java-Themen 8
M Swing java command line abfangen Allgemeine Java-Themen 8
M Java line separator (evtl nur in TextComponents...) Allgemeine Java-Themen 5
K Command Line Argument Interpreter für komplexe Strukturen Allgemeine Java-Themen 9
D welchen line brak benutzt ein geg. textfile Allgemeine Java-Themen 3
M MessageFormat : multi line Allgemeine Java-Themen 10
U Serach in Line Allgemeine Java-Themen 2
X Audio-Eingabegerät auswählen (MIC oder LINE-IN) Allgemeine Java-Themen 11
C Line-In Signalstärke Visualisieren Allgemeine Java-Themen 2
S Wie Carriage Return Line Feed abfragen. Allgemeine Java-Themen 6
P command line parameter auswerten Allgemeine Java-Themen 3
C Sound: Keine Line gefunden. Zu großer internal buffer? Allgemeine Java-Themen 3
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
B Fehler bei einem Programm Allgemeine Java-Themen 10
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
S Ganzes Programm "stucked" - JVM-Fehler? Allgemeine Java-Themen 2
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
J Compiler-Fehler .nextLine fehler Allgemeine Java-Themen 3
B Fehler im Java-Code Allgemeine Java-Themen 4
S Java Fehler bei Konsolenprogramm Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben