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

문자열에서 숫자변환시 공백 처리

0 추천
EditText et_value1=(EditText)findViewById(R.id.edit_value1);
String str_value1=et_value1.getText().toString();
it3.putExtra("it3_value1", str_value1);

이렇게 데이터를 입력 받거든요.  받는데서는


String str_value1=it3.getStringExtra("it3_value1");
TextView txt_value1=(TextView)findViewById(R.id.edit_value1);
int temp1=Integer.parseInt(str_value1);
 
 
TextView txt_value1=(TextView)findViewById(R.id.edit_value1);
 
 
if( (99 < temp1 )&& (temp1 < 111 ) ) {
 
txt_value1.setText(str_value1);
 

이렇게 받는데 제가 숫자를 받느 라고 Integer.parseInt  이걸 쓰고 있습니다. 그런데 아무것도 입력안하고 넘기면 로그캣에 unable to parse   '  '  as integer 라고 뜨거든요. 이게 공백을 숫자로 변환하려고 해서 그렇다는데 그래서

if무느로 

 

                       String str_value1=it3.getStringExtra("it3_value1");
			
				if(str_value1 == null){ //str_value1이 null이면 밑에 수행
					TextView txt_value1=(TextView)findViewById(R.id.edit_value1);
					txt_value1.setText(str_value1);
				}else{ //null이 아니면 숫자 변환해서 실행
					int temp1=Integer.parseInt(str_value1);
								 					 
					//색깔별 값 범위
				 	TextView txt_value1=(TextView)findViewById(R.id.edit_value1);
			
					//조건에 따른 색깔 지정
				 	if( (99 < temp1 )&& (temp1 < 111 ) ) {
				 	
				 		txt_value1.setText(str_value1);

이런식으로 해줬거든요. txt_value1.setText(str_value1);  이거는 공백도 그냥 아무것도 없이 출력을 해주더라구요.

이렇게 했는데도 로그캣에 unable to parse   '  '  as integer 라고 뜹니다..

 

어떻게 해줘야 하나요?

브루스웨인 (8,580 포인트) 님이 2013년 6월 10일 질문

2개의 답변

+1 추천
 
채택된 답변
str_value1의 값이 null이 아니기 때문에 Integer.parseInt() 구문으로 넘어온것 같습니다.
 
if (str_value1 == null || str_value1.length() == 0) {
	// ...
} else {
	// ...
}

으로 바꿔보세요.

 

monal (4,210 포인트) 님이 2013년 6월 11일 답변
브루스웨인님이 2013년 6월 11일 채택됨
아 감격 ㅠㅠ 감사합니다. 공백이 문제가 아니라 문자열 길이로 판단을 해야 하나보군요..
0 추천

방법은 여러가지가 잇습죠~~!

if(문자열.equels("")){

변환

}

혹은 익셉션 트라이 캐치문으로 캐취해서 원하시는 작업을 하시면 되요~~!

int a;

try{

a=Integer.parseInt(str_value1);

}catch{

a= 0;

}

ThisPlus (46,920 포인트) 님이 2013년 6월 11일 답변
...