2012-12-05 2 views
-4

난 그냥 궁금 사람이 나에게 나는 2D 부울 배열이 문자열을 넣어넣어 문자열 자바

예를 인쇄 할 방법에 대한 몇 가지 코드를 보여줄 수 있다면 "0-1 0- 2 1-2 1-3 1-3 2-3 "그러나이 문자열은 더 복잡 할 수 있습니다."0-1 1-2 2-3 3-0 0-4 0-11 1-5 1-6 2-7 2 -8 3-9 3-10 4-5 6-7 8-9 10-11 4-7 4-8 5-9 5-10 6-9 6-10 7-11 8-11 "

0-1은 true, 0-2은 true, 1-2는 참, 1-3은 참, 2-3은 참, 다른 모든 포언은 틀림

+1

[무엇을 시도해 봤습니까?] (http://www.whathaveyoutried.com/) –

+0

BTW - '11 '과 같은 정수에서 어떤 식으로'부울 '로 변환됩니까? –

+0

내 가장 좋은 추측은 각각 0-1 또는 0-2는 2D 배열의 각 위치입니까? 그럼이 위치는 사실입니까? 그러나 약간의 설명은 좋을 것이다. – Clark

답변

1

나는 당신이 무엇인지 모른다. 2D로 바꾸는 것을 의미합니다. boolean 어레이. 텍스트 구문 분석에 문제가있는 경우 사용할 수있는 코드 스 니펫은 다음과 같습니다.

첫 번째 해결 방법은 숫자가 항상 쌍으로되어 있고 하나의 -으로 구분되어 있고 숫자 쌍 사이에 공백이있는 것으로 가정합니다.

사용이 사용자가 표준 입력을 읽고있는 경우 : 당신이 String 모든 숫자를 포함해야하고 당신이 그것을 처리 할 경우

Scanner scanner = new Scanner(System.in); 

사용이 (하자 변수의 이름이 inputString 일) :

Scanner scanner = new Scanner(inputString); 

그럼 당신은 입력에서 숫자를 읽을 수 있습니다

while (scanner.hasNext()) { 
    String pair = scanner.next(); 
    // Split by the hyphen 
    String tokens[] = pair.split("-"); 

    // Normally, one should check the array before accessing it 
    // I currently assume the input is valid 
    int first = Integer.parseInt(tokens[0]); 
    int second = Integer.parseInt(tokens[1]); 

    // Do whatever you want with the 2 numbers extracted 
} 

또는, 당신은 또한 별도로 - 처리하지 않고 구분 기호로 -를 추가하고 번호를 읽을 nextInt를 사용하는 useDelimiter를 사용할 수 있습니다

scanner.useDelimiter("[\\p{javaWhitespace}-]+"); 

를 코드는 간단하게됩니다

scanner.useDelimiter("[\\p{javaWhitespace}-]+"); 

while (scanner.hasNext()) { 
    int first = scanner.nextInt(); 
    int second = scanner.nextInt(); 

    // Do whatever you want with the 2 numbers extracted 
} 

코드가 더 깨끗하지만, -firstsecond 사이에 나타나는지 또는 얼마나 많은 -이 표시되는지 여부 o r은 숫자 쌍 사이의 유일한 문자가 아니라는 것을 지금 알지 못합니다. 입력 형식이 맞다고 가정해도 괜찮습니다. 그러나 그 가정이 주어지지 않으면 우리는 입력 검증을 할 수 없다.