Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 입력 문자열로부터 숫자만 추출하는 방법

java.lang.String 클래스는 문자열을 다룰 수 있는 다양한 메서드를 제공합니다. 이러한 메서드를 활용하면 공백 제거(trim), 문자열 연결(concatenation), 형 변환(conversion), 비교(comparison) 등의 작업을 손쉽게 수행할 수 있습니다.

특히 replaceAll() 메서드와 정규식을 함께 사용하면, 주어진 문자열에서 숫자만 간단하게 추출할 수 있습니다. 이 방법은 숫자가 아닌 모든 문자([^0-9])를 빈 문자열("")로 치환하는 원리로 동작합니다.

예제 코드

아래 예제는 사용자로부터 키보드로 문자열을 입력받은 뒤, 그 안에 포함된 숫자만 골라 출력하는 프로그램입니다.

import java.util.Scanner;

public class StringExtractTest {
    public static void main(String[] args) {
        String input;
        String numbers;
        Scanner scanner = new Scanner(System.in);
        System.out.print("키보드로 숫자가 포함된 문자열을 입력하세요: ");
        input = scanner.nextLine();

        // 숫자(0~9)가 아닌 모든 문자를 제거
        numbers = input.replaceAll("[^0-9]", "");

        System.out.println("추출된 숫자: " + numbers);
    }
}

실행 결과

키보드로 숫자가 포함된 문자열을 입력하세요: Welcome to Tutorials Point 1234567890
추출된 숫자: 1234567890

정규식 설명

  • [^0-9]: 0부터 9 사이의 숫자를 제외한 모든 문자를 의미합니다.
  • replaceAll("[^0-9]", ""): 숫자가 아닌 모든 문자를 빈 문자열로 대체하여 결과적으로 숫자만 남깁니다.
  • 소수점이나 음수 기호까지 포함하려면 [^0-9.], [^0-9.-]처럼 패턴을 확장할 수 있습니다.

이처럼 replaceAll() 메서드는 별도의 반복문이나 파싱 로직 없이 한 줄의 코드로 문자열에서 숫자를 추출할 수 있는 가장 간결하고 실용적인 방법입니다.