Wie erkennt man dass der gesuchte am Zeilenanfang steht

Dimax

Top Contributor
Hallo Leute ,
versuche herausfinden ob der gesuchte String am Zeilenanfang steht.
Java:
for(int i=0;i<temp.length()-13;i++){
             
            temp4=temp.substring(i, i+4);
             
            if( Pattern.matches("^DATA",temp4)) 
//Ob es am Zeilenanfangsteht??
Funktioniert nicht.Was kann man da noch versuchen
 
Weil der String startet ja mit "DATA" muss aber nicht unbedingt am Zeilenanfang stehen.
oder meinst du scanner einbauen und nextLine einem String zuweisen dann trimmen und vergleichen?
 
Weil der String startet ja mit "DATA" muss aber nicht unbedingt am Zeilenanfang stehen
Das solltest du vielleicht mal genauer an einem Beispiel erklären - der Satz ergibt für mich keinen Sinn.
Beschreibe am Besten mal anhand eines Beispiels, was du hast (an Input-Daten) und was du erreichen möchtest.
 
Java:
String text="blabla blabla DATA blabl abla
 DATA blabla";
for(int i=0;i<text.length()-4;i++){
String temp=text.substring(i,i+4)
if(Pattern.matches("^DATA",temp4){//mach blabla}
kommt bei beiden DATA rein.Sollte aber nur bei dem was am Zeilenanfang steht reinkommen
 
Es gibt mehrere Zeilen in dem text String und es gibt sehr viele DATA Wörter .if anweisung soll nur die die am Zeilenanfang stehen aussortieren.
 
Versteh nicht wo genau das Problem liegt.
Java:
String data = "Lorem ipsum dolor sit amet, DATA consetetur sadipscing elitr, \n" +
        "DATA sed diam nonumy eirmod tempor invidunt ut labore et \n" +
        "\n" +
        "\n" +
        "dolore magna aliquyam erat, sed diam voluptua. At \n" +
        "DATA vero eos et DATA accusam et justo duo dolores et ea rebum. \n" +
        "\n" +
        "Stet clita kasd gubergren, no sea takimata sanctus est \n" +
        "Lorem ipsum dolor DATA sit amet.\n";

Scanner scanner = new Scanner(data);
String line = "";
while(scanner.hasNextLine() && (line = scanner.nextLine()) != null) {
    if(line.startsWith("DATA")) {
        System.out.println("Do something... [" + line + "]");
    }
}
 
Die Lösung passte am Besten für mich:
Java:
if(temp.substring(temp.indexOf(lineSeparator,i)+2,temp.indexOf(lineSeparator,i)+7).equals("DATA "))
temp ist ein String wo gesucht wird,lineSeparator im meinem Fall ist für Windows :wenn Unix dann muss mann nur +1 und +6 nehmen
 

Zurück
Oben