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