2016-07-19 7 views
-1

私はコンソールからの入力を読み込んでいますが、別の文字列を取得するたびに読み込みます。例えば。私は "Bob"に入って、実際に "Bob"かどうかをチェックしています。また、私は長さをチェックした - 彼らは同一です。それは間違っているのですか?Java:readLine()からの入力が間違っています

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class Main { 

    public static void main(String[] args) { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.print("Please enter username: "); 
     String username = null; 
     try { 
      username = reader.readLine(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     if(username == "Bob") 
      System.out.println("yes"); 
     else 
      System.out.println("not"); 

     System.out.println(username.length()); 
     System.out.println("Bob".length()); 
    } 
} 
+2

をJAVAので、Scannerhttps://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html)を使用する方が簡単/優れています==ではなく、文字列を比較するためにequals() 'を使います。 – dty

答えて

1

比較にequalsメソッドを使用します(非インターン)文字列

public static void main(String[] args) { 
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.print("Please enter username: "); 
    String username = null; 
    try { 
     username = reader.readLine(); 
     if ("Bob".equals(username)) 
      System.out.println("yes"); 
     else 
      System.out.println("not"); 

     System.out.println(username.length()); 
     System.out.println("Bob".length()); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

しかし、それは `使用1.5

System.out.println("Please enter username: "); 
Scanner scanner = new Scanner(System.in); 
String username = scanner.nextLine(); 
if ("Bob".equals(username)) 
    System.out.println("yes"); 
else 
    System.out.println("no"); 
+0

ああ、それは簡単だった – randomsuffer

関連する問題