2011-08-20 19 views
10
String[] letters = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "L"}; 

Scanner inp = new Scanner(System.in); 
String input = (inp.nextLine()); 
String[] cord = input.split(""); 

for(int x = 0; x < 10; x++) 
    if(letters[x] == cord[1]) 
     System.out.println("Fk yeah!"); 

Perché il Fk sì! non succede mai se inserisco una delle lettere A-L?La stringa non è uguale alla stringa?

+0

Sei sicuro che 'cord' è in realtà solo la lettera e non lo spazio? –

+0

potrebbe anche essere superiore o in minuscolo – Jody

+0

Sì, sono sicuro al 100%. No, sono entrambi in maiuscolo. –

risposta

22

Le stringhe sono oggetti. Lo == confronta gli oggetti per riferimento, non per il loro valore interno.

Ci sono 2 soluzioni:

  1. metodo Usa String#equals() invece di confrontare il valore di due String oggetti.

    if (letters[x].equals(cord[1])) 
    
  2. Uso char invece di String. È un primitivo, quindi == funzionerà.

    char[] letters = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L'}; 
    
    Scanner inp = new Scanner(System.in); 
    String input = (inp.nextLine()); 
    char[] cord = input.toCharArray(); 
    
    for (int x = 0; x < 10; x++) 
        if (letters[x] == cord[1]) 
         System.out.println("Fk yeah!"); 
    
+5

mucca sacra hai molti distintivi –

+2

@Code: Non è nulla se paragonato a Jon Skeet. – BalusC

+0

bene complimenti in entrambi i casi :) Mi inchino a te Sir –

11

per confrontare le stringhe per l'uguaglianza, non utilizzare ==. L'operatore == controlla se due oggetti sono esattamente lo stesso oggetto. Due stringhe possono essere oggetti diversi, ma hanno lo stesso valore (contengono esattamente gli stessi caratteri). Utilizzare il metodo .equals() per confrontare le stringhe per l'uguaglianza. Allo stesso modo, utilizzare il metodo .compareTo() per verificare confronti diversi. Ad esempio,

String s = "something", t = "maybe something else"; 
if (s == t)  // Legal, but usually WRONG. 
if (s.equals(t)) // RIGHT 
if (s > t) // ILLEGAL 
if (s.compareTo(t) > 0) // CORRECT> 
Problemi correlati