2009-12-24 4 views
16

아래 코드가 무엇이 잘못 되었는가를 알지 못합니다 ... 나는 입력란에서 입력을 받고 문자열을 입력하고 있습니다. 텍스트 상자가 비어 있으면 빈 문자열을 반환합니다. 아래의 코드Java의 빈 문자열 확인

String[] str = new String[9]; 
    for(int i=0;i<9;i++){ 
     if(str[i].equals("")){ 
      System.out.println("set " + cmds[i] + " " + str[i]); 
      WriteThread.sendCommand("set " + cmds[i] + " " + str[i] + "\n", false); 
     } 
    } 
위의 코드 str[i] 매장에서

텍스트 상자의 입력 텍스트와 나는 배열의 모든 요소가 비어 있는지 확인하려합니다. 나는 또한 str[i] == ""str[i] == null으로 시도했지만 행운은 없다. str[i] 문자열을 인쇄 할 경우 if 블록 안의 문은 아무것도 표시하지 않고 비어 있음을 나타냅니다.

나는 잘못된 길을 가고 있습니까?

+1

무엇을 확인하려고합니까? 문자열이 비어 있는지 확인한 다음 인쇄를하면 결과는 "set"+ ...과 같이 나타납니다. 빈 문자열을 볼 수 없으므로 :). 아마도 당신은 not 조건을 테스트하기를 원할 것입니다 : ie if (! str [i] .equals ("")) .. – sateesh

+0

정말로 간단하게 if() 조건을 검사하십시오 ... – ThinkJet

+0

질문을 편집하여 더 이해할 수 있을까요? 댓글과 답변에서 나는 당신이 정말로 원하는 것을 확신하지 못하는 유일한 사람이 아니라는 것을 알 수 있습니다 :-( – KLE

답변

27

당신이 시도 할 수 :

if (str[i] == null || str[i].trim().equals("")){ 
// your code 
} 
+2

그것은 나를 위해 일했다 .... 많이 고마워 .. –

+1

이것은 자바 스크립트가 아니다. – vivek

0

문자열이 비어 원하는 동작한다는 것입니다 경우 위의 코드는 실행? 또한 루프가 완전히 비어있는 것을 보장하기 전에 str을 새로운 오른쪽으로 선언하십시오.

텍스트 상자의 값을 할당하려는 경우 해당 할당이 루프 이전의 어딘가에 있어야합니다.

15

당신은 문자열을 확인하기 위해 Apache Commons Lang을 사용할 수 있습니다 : 문자열 인 경우

if (StringUtils.isBlank(str[i]) { 
    ... 
} 

StringUtils.isBlank이 확인되는 null 또는 빈 (모든 공백 문자가 제거 될 때 즉 "" 같음이 경우).

+0

누군가 공간에 들어가면 어떻게됩니까? – Jony

+1

@AshishDonvir'StringUtils.isBlank ("" ")'는'true를 반환합니다. 이 테스트가'false'를 반환하게하려면 대신'StringUtils.isEmpty (...) '를 사용할 수 있습니다. – romaintaz

0

내가 실제로 코드를 실행하려고하고 조건

STR에 NullPointerException이있어 [내가] .equals ("")

STR은 [I] == null가 근무 나를. 질문에 올바른 코드를 넣었습니까? 방금 초기화 한 빈 배열의 빈 문자열을 테스트하는 것이 이상하게 보입니다.

0

매우 간단한 해결책은 이와 같을 수 있습니다.

if(str[] != null && !str[].equals(""))