00012345 처럼 왼쪽이 0으로 채워진 문자열이 있을 때, 이 문자열을 제거하는 방법을 알아보겠습니다.

1. Integer.parseInt()를 이용한 방법

문자열이 숫자로만 되어있다면 Integer.parseInt(str)로 str을 int 타입으로 변환할 수 있습니다. int로 변환되면 왼쪽 0은 모두 제거되며, int를 다시 String으로 변환하면 왼쪽 0이 제거된 문자열을 얻을 수 있습니다.

  • Integer.toString(result) : int를 String으로 변환
public class Example {

    public static void main(String[] args) {

        String input = "00012345";

        // Integer로 변환하면서 0 제거
        int result = Integer.parseInt(input);
        // 문자열로 다시 변환
        String resString = Integer.toString(result);

        System.out.println("Result: " + resString);
    }
}

Output:

Result: 12345

2. 정규표현식을 이용한 방법

정규표현식으로 왼쪽에 있는 연속적인 0을 찾아서 제거할 수 있습니다.

  • replaceFirst("^0+", "") : 0으로 시작하는 연속적인 0 패턴 찾고, ""으로 변환하여 제거
  • replaceFirst는 문자열에 일치하는 패턴이 여러개라도 1개의 패턴만 다른 문자열로 변환함
  • "^0+" 패턴에서 ^는 문자열 시작을 의미, +는 앞의 패턴이 1개 이상
public class Example {

    public static void main(String[] args) {

        String input = "00012345";

        // 정규표현식으로 왼쪽 0 제거 (연속된 0 모두 제거)
        String result = input.replaceFirst("^0+", "");

        System.out.println("Result: " + result);
    }
}

Output:

Result: 12345

3. substring()을 이용한 방법

String.substring(index)는 문자열의 index 위치에서 문자열 마지막까지 잘라서 리턴합니다.

아래 예제 처럼, 왼쪽 0이 끝나는 위치를 찾고, substring()을 이용하여 왼쪽 0을 모두 제거할 수 있습니다.

  • while문으로 왼쪽 0이 끝나는 index 찾음
  • input.substring(index) : index부터 마지막까지 잘라서 문자열 리턴
public class Example {

    public static void main(String[] args) {

        String input = "00012345";

        // 0이 끝나는 위치 찾고, 0을 제외한 나머지 문자열만 잘라서 가져옴
        int index = 0;
        while (index < input.length() && input.charAt(index) == '0') {
            index++;
        }
        String result = input.substring(index);

        System.out.println("Result: " + result);
    }
}

Output:

Result: 12345