2017-10-13 3 views
1

Ich möchte meine Anwendung als Zeichenfolge jede Übereinstimmung lesen.Ich möchte Matcher-Variable als Zeichenfolge speichern

Scanner reader = new Scanner(System.in); 
    System.out.println("Problem 1: Create a heading using h1 tag"); 
    String input = reader.nextLine(); 
    Pattern regex = Pattern.compile("<[a-z][0-9]>"); 
    Matcher m = regex.matcher(input); 
    if(m.find()){ 
     String meme = m.group(0); 
     System.out.println(meme); 
     if(meme == "<h1>"){ 
      System.out.println("Found a string."); 
     } 
     else{ 
      System.out.println("No string found."); 
     } 
    } 
    else{ 
     System.out.println("No closing tag."); 
    } 

Zum Beispiel habe ich
Eingang <..h1..> (Mißachtung Punkte) aber der Ausgang ist immer No string found obwohl ich meme gesetzt == <..h1..>. Wie kann ich es in eine Zeichenfolge konvertieren?

Antwort

1

denke ich, das Problem mit Ihrem Code in dieser Zeile ist

if(meme == "<h1>") 

Es

if(meme.equals("<h1>")) 
+0

Genau was ich brauchte! Akzeptiert. – Yupyep

2

Das Problem in (meme == "<h1>") ist sein sollte.

Da der Gleichheitsoperator (==) anhand von Referenz und nicht nach Wert vergleicht, vergleicht er tatsächlich zwei separate Strings: meme und "<h1>". Verwenden Sie stattdessen:

if(meme.equals("<h1>")){ 
+0

Darn es Karan, du schlägst mich dazu ... – phlaxyr

+0

Danke für die Hilfe! Wenn ich nur 2 antworten könnte – Yupyep

+0

Kein Problem! :-D – phlaxyr

Verwandte Themen