스캐너 이중 값 - InputMismatchException
질문:
스캐너를 사용하여 Java에서 이중 값을 읽는 경우 , 올바른 입력이 입력된 후 왜 InputMismatchException이 발생합니까? 제공됩니까?
원인:
일반적으로 로캘 불일치로 인해 입력이 예상 데이터 유형과 일치하지 않을 때 예외가 발생합니다.
해결책 :
문제를 해결하려면 스캐너 생성 시 로캘을 지정하세요. 개체:
Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
설명:
각 로캘에는 고유한 소수점 및 천 단위 구분 기호 집합이 있습니다. 예를 들어, 미국 로케일에서는 소수 구분 기호가 마침표('.')인 반면 많은 유럽 로케일에서는 쉼표(,)입니다.
로케일을 지정하지 않고 Scanner 객체를 생성할 때 Java는 다음을 사용합니다. 기본 시스템 로케일. 기본 로케일이 소수 구분 기호로 쉼표를 사용하고 입력이 마침표와 함께 입력되는 경우 검사기는 입력을 정수로 읽으려고 시도하여 결과적으로 InputMismatchException이 발생합니다.
미국 로케일을 지정하면 스캐너는 마침표를 소수 구분 기호로 예상하고 입력을 이중 값으로 올바르게 읽습니다.
위 내용은 올바른 이중 입력 후 Java 스캐너에서 InputMismatchException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!