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

글자 비교 시 equals가 적용되지 않습니다,.

0 추천
Log.e("text....",text);
			String[] data = text.split("\n"); 
			String false0="0";
			String true1="1";
			for(int i=0; i<data.length; i++) 
			{ 
				Log.e(i+"번",data[i]);
				String datas = data[i];
				if("0".equals(data[i]))
				{	
					Log.e("0",data[i]);
					cb[i].setChecked(false);
				}
				else//true
				{
					Log.e("1",data[i]);
					cb[i].setChecked(true);
				}
			}

 

원 텍스트에는 1아니면 0값이 저장되어,

1

1

1

1

0

0

이런식으로 값이 저장되어있고, 개행[\n]을 기준으로 split하여 배열에 저장했습니다.

그리고 for문으로 i번째 값이 1이냐 이냐에 따라 체트박스를 false/true하려고 하는데,

equals가 되지 않아서 죄다 else로 진행되고, 전부 setChecked(true)가 됩니다.

문자 비교할 땐 equals로 해왔는데 무엇이 잘못되었는지 모르겠습니다.

망고사탕 (5,000 포인트) 님이 2016년 2월 25일 질문
\n 구분했다면 공백도 한번 제거 한후 해보세용

3개의 답변

+1 추천
 
채택된 답변
일단 data변수안에 값이 제대로 들어왔는지부터 보셔야 할것 같네요.

코드 상의 문제는 없는거같으니 split 할때라던지 변수에 담고나서 등등..

디버그를 걸어서 한줄씩넘어가보세요, 변수에 어떤값들이 담겨있나 비교해보시고
캬옹이 (37,920 포인트) 님이 2016년 2월 25일 답변
망고사탕님이 2016년 2월 25일 채택됨
감사합니다. 내일 이 방법으로 시도해보겠습니다..^^;
+2 추천
수정합니다..

구글 검색해보니 \r\n 형태로 사용하는 방법이 있던데요
모나미153 (17,540 포인트) 님이 2016년 2월 25일 답변
+1 추천
String text = "0\n1\n0\n1";
Log.e("text....", text);
String[] data = text.split("\n");

for (int i = 0; i < data.length; i++)
{
  String d = data[i];
  Log.i("###", d + "|" + ("0".equals(d)) + "|" + ("1".equals(d)));
//  cb[i].setChecked("0".equals(d));
}

 

I/###: 0|true|false
I/###: 1|false|true
I/###: 0|true|false
I/###: 1|false|true

원인은 모르겠지만, 저 코드에는 문제가 없는 것 같습니다. 

쎄미 (162,410 포인트) 님이 2016년 2월 25일 답변
...