>
import java.io.*;
import java.util.*;
class usingDelimiters
{
    public static void main(String args[])
    {
        Scanner dis=new Scanner(System.in);
        int a,b,c;
        a=dis.nextInt();
        b=dis.nextInt();
        c=dis.nextInt();
        System.out.println("a="+a);
        System.out.println("b="+b);
        System.out.println("c="+c);
    }
}

이 프로그램은 입력 값이 1 2 3 (공백으로 구분) 일 때 정상적으로 작동합니다 그러나 입력이 1,2,3 일 때 프로그램을 수정하는 방법 (쉼표로 구분)


  • 답변 # 1

    nextLine 메소드를 사용하여 문자열을 읽고 메소드 분할을 사용하여 다음과 같이 쉼표로 구분할 수 있습니다.

    public static void main(String args[])
        {
            Scanner dis=new Scanner(System.in);
            int a,b,c;
            String line;
            String[] lineVector;
            line = dis.nextLine(); //read 1,2,3
            //separate all values by comma
            lineVector = line.split(",");
            //parsing the values to Integer
            a=Integer.parseInt(lineVector[0]);
            b=Integer.parseInt(lineVector[1]);
            c=Integer.parseInt(lineVector[2]);
            System.out.println("a="+a);
            System.out.println("b="+b);
            System.out.println("c="+c);
        }
    
    

    이 방법은 쉼표로 구분 된 3 개의 값으로 작동합니다.

    값의 양을 변경해야하는 경우 루프를 사용하여 벡터에서 값을 가져올 수 있습니다.

  • 답변 # 2

    숫자가 아닌 항목에 대해 구분 기호를 사용하면 숫자가 아닌 것으로 표시됩니다. 구분자로.

    다음과 같이 :

    dis.useDelimiter("\\D");
    
    

    와이즈 비즈  방법은 useDelimiter 를 걸립니다  또는 Pattern   String 의 표현 .

    전체 예 :

    Pattern
    
    

    입력 (또는)

    Scanner dis=new Scanner(System.in); dis.useDelimiter("\\D"); int a,b,c; a=dis.nextInt(); b=dis.nextInt(); c=dis.nextInt(); System.out.println(a + " " + b + " " + c); dis.close();

    1,2,3

    출력

    1 2 3
    
    

    참고

    1 2 3 를 잊지 마세요  당신의 close !

    Scanner API 참조 입력을 제한하는 추가 재미를 위해.

    Pattern

관련 자료

  • 이전 JSON ARRAY 데이터를 Android의 서버에 게시하는 방법
  • 다음 python - yolo v3 감지 된 물체의 이미지를 추출하는 방법