>Java >java지도 시간 >올바른 이중 입력 후 Java 스캐너에서 InputMismatchException이 발생하는 이유는 무엇입니까?

올바른 이중 입력 후 Java 스캐너에서 InputMismatchException이 발생하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-09 14:02:121010검색

Why Does My Java Scanner Throw an InputMismatchException After Correct Double Input?

스캐너 이중 값 - InputMismatchException

질문:
스캐너를 사용하여 Java에서 이중 값을 읽는 경우 , 올바른 입력이 입력된 후 왜 InputMismatchException이 발생합니까? 제공됩니까?

원인:
일반적으로 로캘 불일치로 인해 입력이 예상 데이터 유형과 일치하지 않을 때 예외가 발생합니다.

해결책 :
문제를 해결하려면 스캐너 생성 시 로캘을 지정하세요. 개체:

Scanner scanner = new Scanner(System.in).useLocale(Locale.US);

설명:
각 로캘에는 고유한 소수점 및 천 단위 구분 기호 집합이 있습니다. 예를 들어, 미국 로케일에서는 소수 구분 기호가 마침표('.')인 반면 많은 유럽 로케일에서는 쉼표(,)입니다.

로케일을 지정하지 않고 Scanner 객체를 생성할 때 Java는 다음을 사용합니다. 기본 시스템 로케일. 기본 로케일이 소수 구분 기호로 쉼표를 사용하고 입력이 마침표와 함께 입력되는 경우 검사기는 입력을 정수로 읽으려고 시도하여 결과적으로 InputMismatchException이 발생합니다.

미국 로케일을 지정하면 스캐너는 마침표를 소수 구분 기호로 예상하고 입력을 이중 값으로 올바르게 읽습니다.

위 내용은 올바른 이중 입력 후 Java 스캐너에서 InputMismatchException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.