2014-02-09 3 views
-1

사용자 입력을받는 프로그램을 작성 중이며 답변에 따라 다른 대답을 제공합니다. 사용자가 입력 한 문자열을 if - else 문과 함께 사용하려면 어떻게해야합니까?Java의 If - Else 문에 포함 된 문자열

나는 지금까지이 :이 경우에 if 문에 대한 구문에 대해 궁금

import java.io.*; 
import static java.lang.System.*; 

import java.util.Scanner; 

class t1_lesson07_template{ 

    public static void main (String str[]) throws IOException { 

       Scanner scan = new Scanner(System.in); 

       System.out.print("Hello, welcome to the companion planting guide. "); 
       System.out.print("Lets get started! To begin, just input the desired plant in the box to learn what plants to grow with it!"); 
       String plant = scan.nextLine(); 
       if (plant == "Asparagus") { 
       System.out.print("Tomatoes, parsley, and basil."); 
       } 


    } 

} 

.

+0

인터넷에서 "syntax java"를 찾으려고 했습니까? 왜 이것을 컴파일하려고하지 않습니까? –

+0

체크 아웃이 멋진 게시물 http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java –

답변

0

equals

변경이 plant == "Asparagus"

plant.equals("Asparagus") 

equals();

0

Strings는 자바 객체와 문자열을 비교합니다. 그것은 기본 "java.lang 클래스의 일부이기 때문에 그것을 원시와 혼동하기 쉽습니다. 문자열을 비교하려면 (모든 객체와 마찬가지로) .equals 메소드를 사용해야합니다.

이 경우 항등 연산자는 문자열 변수 plant의 주소와 해당 행에만 할당 한 새 String 객체 인 "Asparagus"의 주소를 비교합니다. 물론, 그들은 다른 대상이기 때문에 절대로 평등하지 않을 것입니다.

0

"=="-> 포인터 단지 comparasion에 (오브젝트 참조)

"s1.equals (S2)가"인 -> 콘텐츠

1

자바 검사에서 == 연산자 comparasion에 인 두 참조는 과 동일하고입니다. 반면에 equals(Object)과 같은지 확인합니다.

:

귀하의 경우

, 문자열 Asparagus가 사용자와 하드 코딩 그래서 == 잘못이며, 당신이 equals(Object)를 사용해야합니다, 사실, 같은 객체가 될 것 코드에서 리터럴에서 inputed 것이라는 보장은 없다

if (plant.equals("Asparagus")) { 
    System.out.print("Tomatoes, parsley, and basil."); 
} 
관련 문제