2016-07-22 20 views
1

Ich versuche Java zu lernen und will es so geben Sie Ihren Namen, und wenn Name eingegeben wird mit Ihrem Namen wird es Hallo [Ihr Name] drucken, mache ich dies mit einer if-Anweisung und wenn ja, wenn die Eingabe gleich einer Zeichenkette ist, die meinem Namen entspricht, wird sie Hallo plus die Eingabe ausgeben. Allerdings ist es nicht ... die else-Anweisung ist was verwirrt mich, weil ich es die beiden Wert drucken, um zu sehen, ob sie gleich waren und sie beide, wo ... Hilfe würde dankbar sein, danke.Stuck mit Erstellen von if-Anweisung von String-Eingang

package AgeTester; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 

public class HelpSystem { 
public static void main(String args[]) { 
    String inp = "Jono"; 
    JFrame frame = new JFrame("Input Dialogue"); 

    String name = JOptionPane.showInputDialog(frame, "What is your name?"); 

    if (inp == name) { 
    System.out.printf("Hello", name); 
    } else { 
    System.out.println(inp + name); 
    } 
    System.exit(0); 
} 
} 
+0

Verwenden 'inp.equals (name)' in 'if' Zustand und' inp.equalsIgnoreCase (Name) 'Fall von Buchstaben zu ignorieren. – VatsalSura

+0

Es gibt einen weiteren Fehler: Innerhalb von if block, nimmt 'System.out.println' nur ein Argument. Verwenden Sie "+" (oder 'StringBuilder') für die Verkettung von Strings. –

Antwort

2

Wenn Sie vergleichen zwei Zeichenketten sollten Sie die .equals verwenden (String) -Methode

if (inp.equals(name)) { 

erinnern: == Tests als Referenz Gleichheit (ob sie das gleiche Objekt sind).

1

Sie verwenden nicht die equals() Methode, es ist, was wir verwenden, um Zeichenfolgen in Java nicht == zu komparieren.

if (inp.equals(name)) { 
    System.out.printf("Hello", name); 
    } else { 
    System.out.println(inp + name); 
    }