String이 공백인 경우에 대한 질문입니다.

조회수 1114회

안녕하세요!

String(변수명 word)을 입력받을 때 공백을 입력한경우, 이 String이 공백인지 아닌지에 따라 true, false를 출력하려고 합니다.

String에 공백인 경우 if(word.equals(" ")) System.out.println("공백"); 에서 분기가 안되는 이유가 무엇인가요?

테스트 해본 소스코드는 아래와 같습니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Demo {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String word = br.readLine().trim();

        if(word.equals("  ")) {
            System.out.println("공백");
        }
        else if(word.trim().length()==0) {
            System.out.println("트림");
        }
        else if(word.equals(null)) {
            System.out.println("null");
        }
        else {
            System.out.println("문자열: "+word+"문자열 길이:"+word.length());
        }
    }
}

감사합니다!

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • String word = br.readLine().trim();
    

    에서 trim()은 공백을 제거하므로 trim 을 제거합니다.

    String word = br.readLine();
    

    수정후 스페이스 두번넣고 엔터를 치면 공백으로 판단할겁니다.

  • 저라면 이렇게 수정하겠습니다.

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class Demo {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String word = br.readLine(); //.trim() 을 제거, 아래에서 trim 확인하기 때문에
    
            if(word.isBlank()) { //word 가 white space, tab 등 공백 문자로만 이루어져 있는지 확인하는 메소드
                System.out.println("공백");
            }
            else if(word.trim().length() !=  word.length()) { //앞 뒤 공백을 제거한 것이 원래 문자열 길이와 다르다면 true
                System.out.println("트림");
            }
    //        else if(word.equals(null)) { //이 if 문은 의미가 없습니다. br.readLine()으로 문자열 할당을 했기 때문에 null값인 경우는 없습니다.
    //            System.out.println("null");
    //        }
            else {
                System.out.println("문자열: "+word+"문자열 길이:"+word.length());
            }
        }
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)