--- id: java-user-input title: "Java User Input" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["Scanner class", "자바 사용자 입력"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["java", "programming", "w3schools", "scanner", "user-input"] raw_sources: ["https://www.w3schools.com/java/java_user_input.asp"] applied_in: [] github_commit: "" --- # [[Java User Input]] ## 🎯 한 줄 통찰 (One-line insight) Reading the wrong type from Scanner (e.g., text where a number is expected via `nextInt()`) throws an `InputMismatchException` rather than failing silently or auto-converting — user input handling in Java requires either exception handling or careful type-matched reads. [S1] ## 🧠 핵심 개념 (Core concepts) - **`Scanner`** — class in `java.util` used to read user input. [S1] - **Type-specific read methods** — `nextBoolean()`, `nextByte()`, `nextDouble()`, `nextFloat()`, `nextInt()`, `nextLine()` (String), `nextLong()`, `nextShort()`. [S1] - **`System.in`** — the standard input stream passed to `new Scanner(System.in)`. [S1] - **Mismatched input risk** — wrong-type input (e.g. text into `nextInt()`) throws `InputMismatchException`. [S1] ## 📖 세부 내용 (Details) - Basic string input: `Scanner myObj = new Scanner(System.in); String userName = myObj.nextLine();`. [S1] - Mixed-type input: `String name = myObj.nextLine(); int age = myObj.nextInt(); double salary = myObj.nextDouble();`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - **타입 불일치 예외**: 잘못된 타입의 입력을 읽으면 InputMismatchException이 발생한다는 점이 명시되고, 예외 처리는 별도 Exceptions 챕터로 안내됨. [S1] ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — 이름/나이/급여처럼 여러 타입의 사용자 입력을 순차적으로 읽는 표준 패턴이다. [S1] ## 💻 코드 패턴 (Code patterns) Reading mixed-type user input with Scanner (Java): ```java import java.util.Scanner; class Main { public static void main(String[] args) { Scanner myObj = new Scanner(System.in); String name = myObj.nextLine(); int age = myObj.nextInt(); double salary = myObj.nextDouble(); } } ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.90 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[Java Tutorial]] - **관련 개념:** [[Java Packages]], [[Java Date]], [[Java Try Catch]] - **참조 맥락:** 사용자 입력 처리 — 예외 처리(Try Catch) 챕터에서 잘못된 입력 대응법이 다뤄짐. ## 📚 출처 (Sources) - [S1] W3Schools — Java User Input (Scanner) — https://www.w3schools.com/java/java_user_input.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Java User Input" page (Astra wiki-curation, P-Reinforce v3.1 format).