마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

문자열비교..(.equalse , ==) [closed]

0 추천
                ------------코드부분--------------------------
                String local2 = Locale.getDefault().getDisplayLanguage();
                Log.i("###", "|" + local2 + "|");      //다른값 껴잇나 확인
                Log.i("local2", local2);
                Log.i("###", String.valueOf(local2.equals("English")));
                Log.i("###", String.valueOf(local2.equals("한국어")));
                Log.i("###", String.valueOf(local2.equals("日本語")));
                Log.i("###", String.valueOf(local2 == "English"));
                Log.i("###", String.valueOf(local2 == "한국어"));
                Log.i("###", String.valueOf(local2 == "日本語"));


-----------------------------로그캣-----------------------------------------------------
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/###﹕ |한국어|
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/local2﹕ 한국어
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/###﹕ false
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/###﹕ false
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/###﹕ false
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/###﹕ false
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/###﹕ false
06-18 14:01:44.695  32304-32304/kr.co.test.battery I/###﹕ false

문자열비교할때 .equalse 와 == 을 시도해봤지만 둘다 틀리다고 나와있는데 혹시 제가 잘못쓰거나 그런부분이 있나요!?

질문을 종료한 이유: String local2 = Locale.getDefault().getLanguage();
검정색고양이 (1,040 포인트) 님이 2015년 6월 18일 질문
검정색고양이님이 2015년 6월 18일 closed

5개의 답변

0 추천
 
채택된 답변

 

 

Locale systemLocale = getResources().getConfiguration().locale;

String strLanguage = systemLocale.getLanguage();

 

이렇게하고 strLangage로  en ,ko, ja 각각 비교해보세요

예림이그코드좀바바 (2,470 포인트) 님이 2015년 6월 18일 답변
검정색고양이님이 2015년 6월 18일 채택됨
로그에서는 "한국어" "English" "日本語" 이렇게 나와서 이건줄알았는데 다시한번 시도해볼게요! (일본어는 ja 라고 나와있어요!)
말해주신방법대로 햇는데도 소용이없네요..ㅎ
Locale systemLocale = getResources().getConfiguration().locale;
        String strLanguage = systemLocale.getLanguage();
        if(!strLanguage.equals("ko")){
        Log.e("test" , "한국어를 제외한 모든언어");
         Log.e("test" , "한국어가아닙니다");
        }
이런식으로 해보세요.
해결했습니다!!!
String local2 = Locale.getDefault().getLanguage(); 이렇게적고 ko en ja 로 비교하니 true 가 뜨는군요ㅠ 그래도 계속 도와주시려해주셔서 감사합니다!
0 추천
문자열 비교는 문자열 클라스에서 제공되는 equal 메소드를 써야만 정확한 비교가 됩니다.

기본형숫자나 기타는 == 로 충분하고요...답변이 충분할지 모르지만....
멀리건 (160 포인트) 님이 2015년 6월 18일 답변
0 추천
문자열 비교할때는 공백제거를 해주시는게 좋습니다.

로그캣상에는

a ="한국어  "

b="한국어"

위의 2개를 출력하면 똑같이 "한국어"로 보입니다.

a.trim();

하셔야 정확한 equals비교가 됩니다.

참고하시길~
어렵군요 (5,920 포인트) 님이 2015년 6월 18일 답변
저도 그런가!? 싶어서
Log.i("###", "|" + local2 + "|");
이렇게 공백을 확인하려고 넣어봣는데 공백은 없었어요 ㅠ
로그캣에서는 "|"넣어도 공백있어도 표시 안됩니다.....
0 추천
앞뒤로 공백이 있나보네요

local.trim() 하시고 다시 해보세요
bangbang (8,820 포인트) 님이 2015년 6월 18일 답변
0 추천
Log.i("###", local2.equals("English"));
Log.i("###", local2.equals("한국어"));
Log.i("###", local2.equals("日本語"));
Log.i("###", local2 == "English");
Log.i("###", local2 == "한국어");
Log.i("###", local2 == "日本語");

그냥 이렇게하면 어떻네 나오나요?

쎄미 (162,410 포인트) 님이 2015년 6월 18일 답변
아래 로그캣에 보이듯이 죄다 false.. 그래도 지금은 고쳤습니다!
...