본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/JAVA

[Java] string 시작문자로 시작되는지, 끝문자로 끝나는지 확인하기 체크하기

by 미노드 2024. 1. 24.

자바에서 시작문자로 시작되는 경우를 체크하거나

끝문자로 끝나는 경우를 확인해야 하는 경우가 생겼습니다.

아래 예시처럼 무한반복 루프에서 탈출하기 위한 조건으로
특정 문자로 시작하거나(quit) 특정 문자로 끝날 때(mon) 반복을 종료시키는 소스를 만들었습니다.

유용하게 사용가능한 String method인

String.startsWith()
String.endsWith() 

를 사용할 수 있습니다.(아래 예제에서 .equals("quit\n") 해도 될거같긴 합니다.)

public static void main(String[] args) throws Exception {
        InputStream is = System.in;
        Reader reader = new InputStreamReader(is);

        int readCharNo;
        char[] cbuf = new char[100]; // Reader를 쓰기에, byte 배열이 아닌 char배열로 읽어들인다..
        // 입력 종료하려면 ctrl+z 눌러서 read가 -1이 되도록 하라는데, intellij 에선 안된다.
        while ((readCharNo=reader.read(cbuf)) != -1) {
            String data = new String(cbuf, 0, readCharNo);
            if (data.equals("quit")) break; // 반복탈출 실패, 이게 엔터쳐서 받는거다보니깐, 개행문자도 하나의 문자로 치다보니깐 빈값으로 인식이 안되는 것 같다.
            if (data.startsWith("quit") && data.length()==5) break; // 반복탈출 성공
            if (data.endsWith("mon\n")) break; // 반복탈출 성공

            System.out.print(data.length()+" "); //
            System.out.print(data);
        }
        // 무한반복인데...

        reader.close();
        is.close();