>

학교 프로젝트를하고 있는데, 코드에서 오류가 발생했습니다 : "main"스레드 예외 java.util.InputMismatchException 구분 기호 입력 문을 두 번 사용하려고 할 때.

하나의 입력 행만으로 시도했지만 작동하지만 다른 행을 추가하면 오류가 발생합니다.

Scanner input=new Scanner(System.in);
        input.useDelimiter("##");
        System.out.println("The delimiter is \'##\'");
        System.out.print("Enter the name of product 1, product 2, and product 3: ");
        String prod1 = input.next();
        String prod2 = input.next();
        String prod3 = input.next();
        System.out.print("Enter the quantity of product 1, product 2, and product 3: ");
        int quan1 = input.nextInt();
        int quan2 = input.nextInt();
        int quan3 = input.nextInt();
        System.out.println(prod1+" "+prod2+" "+prod3);
        System.out.println(quan1+" "+quan2+" "+quan3);

예상 결과는 내가 입력하면 생선 ## 바나나 ## 아이스크림 ### 과 3 ## 4 ## 5 ## 그런 다음 인쇄 생선 바나나 아이스크림 3 4 5


  • 답변 # 1

    이 예외는 검색된 토큰이 예상 유형의 패턴과 일치하지 않거나 검색된 토큰이 범위를 벗어 났음을 표시하기 위해 Scanner 클래스의 인스턴스에서 발생합니다.

  • 답변 # 2

    다음 입력을 시도하십시오. : 와이즈 비즈

    개행도 읽을 수 있다고 생각하므로 첫 번째 nextInt가 실패합니다. 아마도 당신은 또한 fish##banana##ice cream##3##4##5## 를 사용하고 싶어  ##?에서 문자열을 분할 하시겠습니까?

  • 답변 # 3

    맞춤식 구분 기호를 사용하는 이유는 무엇입니까? 새 줄로 구분하여 간단히 입력 할 수 있습니다.

    input.nextLine()
    
    
    Scanner input=new Scanner(System.in); System.out.println("Press enter key after every input"); System.out.print("Enter the name of product 1, product 2, and product 3: "); String prod1 = input.nextLine(); String prod2 = input.nextLine(); String prod3 = input.nextLine(); System.out.print("Enter the quantity of product 1, product 2, and product 3: "); int quan1 = input.nextInt(); input.nextLine(); int quan2 = input.nextInt(); input.nextLine(); int quan3 = input.nextInt(); input.nextLine(); System.out.println(prod1+" "+prod2+" "+prod3); System.out.println(quan1+" "+quan2+" "+quan3);

관련 자료

  • 이전 파이썬에서`numpycumsum` 또는`numpycumprod` 줄을 따라`cumreduce`와 같은 함수가 있습니까?
  • 다음 javascript - li 요소의 배열