2016-09-21 4 views
1

나는이 웹 사이트와 자바를 처음 사용하는데 익숙하지만 사용자가 공백이나 쉼표로 구분하지 않고 숫자를 입력 할 수있는 문제를 시도하고있다. 출력은 그 체인에서 가장 연속적으로 그리고 얼마나 많이 나타나는지를 나타냅니다.스캐너 자바를 사용하여 고정 된 입력없이 연속 번호 찾기.

나타나는 숫자의 다른 체인을 비교하는 방법을 알아내는 데 어려움이 있습니다. 예를 들어 행에 3 개의 0이 있고 5 개의 7 개의 값이있는 경우 서로 비교해야합니다.

저는 두 변수를 생각해 냈습니다. 하나는 가장 많이 계산되고 다른 하나는 두 번째 변수가 될 것입니다. 그런 다음 두 번째 자리가 가장 연속적으로 초과하면 두 번째 자리가 첫 번째 자리가되고 값이 0으로 재설정됩니다. 나는 그것을 작동시키지 못했고 for 루프를 사용했기 때문이라고 믿습니다.

질문 :이 문제를 올바르게 해결하는 방법에 대한 지침을 찾고 있습니다. 나는이 모든 잘못에 대해 가겠습니까?

이 코드는 작동하는 유일한 버전입니다. 10000과 같은 숫자를 입력하면 0이 올바르게 입력되지만 100011처럼 숫자가 정확하지 않습니다.

감사합니다.

import java.util.Scanner; 

public class Sequence 
{ 

    public static void main(String[] args) 
    { 
    String numInput; 
    int mostInaRow = 1; 
    int secondPlace = 1; 
    char mostNum = 1; 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter the numbers"); 
    numInput = input.next(); 
    for (int i = 0 ;i < numInput.length() - 1 ; i++ ) 

    { 
     if(numInput.charAt(i) == numInput.charAt(i + 1)) 
     { 
     mostInaRow++; 
     secondPlace++; 
     mostNum = numInput.charAt(i); 
     } 
     else 
     { 

     } 
    } 
    System.out.println(mostNum); 
    System.out.println(mostInaRow); 





    } 


} 
+0

처럼 뭔가를 할 수 그것은 좋은 당신이 그것의 요령을 받고 기호,하지만 정확하게 당신이주는 입력에 무슨 일이 일어나고 있는지 종이에 적어 둡니다. 그렇게하면 코드가 수행하는 작업과 수행해야 할 작업을 이해할 수 있습니다. IF-ELSE 모듈을 다시 한 번 확인하십시오. – avrsanjay

+0

마지막 결과 만 인쇄하고 숫자가 변경되면 아무 것도 다시 설정하지 않습니다. 디버거에있는 코드를 단계별로 실행하여 작업 내용을 더 잘 이해할 것을 제안합니다. –

답변

0
int i = 0; 
    while(i < numInput.length() - 1) { 
     int j = i + 1; 
     int current = 1; 
     while (j < numInput.length() && numInput.charAt(i) == numInput.charAt(j)) { 
      current++; 
      j++; 
     } 
     if (current > mostInaRow) { 
      mostInaRow = current; 
      mostNum = numInput.charAt(i); 
     } 
     i = j; 
    } 

+0

그건 내 질문이 아니야. – Pp88

+0

이 작품! 여기서 무슨 일이 일어나는지 설명해 주시겠습니까? 나는 당신이 이것을 한 방법으로 조금 길을 잃고있다. –

+0

내부 루프는 얼마나 많은 연속 문자가 동등한지를 찾습니다. 내부 루프를 종료 할 때 현재 연속되는 문자 시퀀스가 ​​이전 max 시퀀스의>보다 큰지 가장 큰지를 비교하십시오 .InaRow 및 mostNum – Pp88

관련 문제