2014-12-29 4 views
-4

아마도 이것은 바보 같은 질문을하게 될 것입니다. 그러나 인터넷에서 작동하고 심지어 해결책을 찾기까지하는 방법을 찾을 수 없습니다.안드로이드 - 연결 문자열은 조건에 의해 발견되지 않습니다

새 문자열 ("ATA +"또는 "BTA +")을 만들기 위해 2 개의 문자열 (변수 STR_Prefix 및 문자열 "TA +")을 연결해야합니다. 그런 다음 if 문에서 값을 확인해야하지만 실패합니다 if 문은 "ATA +"를 감지하지 못합니다.

하지만 "STR_Action"값을 "ATA +"로 직접 설정하면 완벽하게 작동합니다.

public void Test(boolean ok) 
{ 
    String STR_Action = ""; 
    if (ok) { STR_Prefix = "A"; } 
    else { STR_Prefix = "B"; } 

    /* I have tried some ways to concatenate */ 
    STR_Action = STR_Prefix + "TA+"; // Not working with the if-statement 
    // STR_Action = new StringBuilder(STR_Prefix).append("TA+").toString(); // Not working with the if-statement 

    /* But if-statement only works when I set STR_Action directly with = "ATA+" or "BTA+"; */ 
    // STR_Action = "ATA+"; // This assign is detected by the if-statement 

    if (STR_Action == "ATA+") 
    { 
     Toast.makeText(getApplicationContext(), "ATA+", 0).show(); 
    } 
    else if (STR_Action == "BTA+") 
    { 
     Toast.makeText(getApplicationContext(), "ATA-", 0).show(); 
    } 
    else 
    { 
     Toast.makeText(getApplicationContext(), "Code not found", 0).show(); 
    } 
} 

은 도움을 주시기 바랍니다 : '(사전에

덕분에

답변

3

.equals() 방법

if (STR_Action.equals("ATA+")) 
+0

비교 String 주셔서 감사 MD 사용이 방법을 시도, 그것을 작동 완벽한 하지만합니다. 여전히 차이가 무엇인지 이해하지 못합니다. STR_Action = STR_Prefix + "TA +"; STR_Action = "ATA +"; 둘 다 STR_Action = "ATA +"를 의미하지만 "=="을 사용하는 경우 "if"가 같은 방식으로 작동하지 않습니다 : - 연결 실패 : - 직접 할당 : 작동 –

관련 문제