2012-06-18 2 views
0

나는 한 단계 방정식을 입력하고 해결할 수있는 프로그램을 만들고자합니다. 그것을 어떤 식 으로든 입력 할 수 있도록하기 위해 나는 모든 캐릭터가 무엇인지 확인하기 위해 for 루프를 실행한다. 그러나 그 때, 나는 이것을 위해 두 자리 숫자를 사용할 수 없다는 것을 깨달았다. 그래서 숫자가 맞는지 테스트하기 위해 오른쪽에 문자 하나가 있는지 확인하는 약간의 함수를 추가하려고 시도했습니다. 그리고 그것이 숫자라면, 발견 한 것과 더한 것을 하나의 숫자로 결합하십시오. 거기 0이 있음을 오른쪽으로 한보고 및 점검 경우처럼, 여기 당신에게 (10)을 줄이 기능방정식의 문자 검사

 Find = equation.charAt(i); 

     if (Character.isDigit(Find)) 
     { 
      if(Found == 0) 
      { 
       if(i < equation.length() - 1) 
       { 
        FindNext = equation.charAt(i + 1); 
        if (Character.isDigit(FindNext)) 
        { 
         one = (Character.toString(Find) + Character.toString(FindNext)); 
         Found = 2; 
         One = Double.parseDouble(one); 
        } 
       } 
       else 
       { 
        one = (Character.toString(Find)); 
        Found = 2; 
        One = Double.parseDouble(one); 
       } 
      } 
      else 
      { 
       if(i + 1 < equation.length() - 1) 
       { 
        FindNext = equation.charAt(i + 1); 
        if (Character.isDigit(FindNext)) 
        { 
         two = (Character.toString(Find) + Character.toString(FindNext)); 
         Two = Double.parseDouble(one); 
        } 
       } 
       else 
       { 
        two = (Character.toString(Find)); 
        Two = Double.parseDouble(two); 
       } 
      } 
     } 

사람이 내가 잘못 무엇을 볼 수 있는가에 대한 코드?

+2

[CodeReview] (http://codereview.stackexchange.com/)가 필요할 수 있습니다. – SimplyPanda

답변

3

숫자가 100이면? 1000? 10000? ... 당신은 요점을 얻습니다. 한 문자 만 미리 확인할 수는 없습니다. 대신 지원하는 작업 (예 : +, -, * 등)을 사용하여 구문 분석을 분리해야하며 숫자를 훨씬 쉽게 얻을 수 있습니다.

+0

예를 들어 주시겠습니까? 나는 아직도 자바에 새로운 사람이다. 나는 파싱으로 구분하는 것에 대해 많이 모른다. –

+0

이 숙제가 있습니까? String.indexOf() 및 String.split()을 살펴보십시오. 당신은 귀하의 번호가 무엇인지 찾기 위해 귀하의 작업이 어디에 있는지 알고 싶습니다. 이 간단한 경우가 있기 때문에 이것은 작동합니다. 여러 연산, 괄호, 연산 순서 등을 소개하기 시작하면 라이브러리를 사용하거나 파서를 조사하는 것이 훨씬 나을 것입니다 (http://stackoverflow.com/questions/28256/equation-expression-parser-with- 상위). – cklab

+0

확인. 감사. 나는 그 물건을 들여다 볼 것이다. 그리고 아니, 만약 당신이 궁금해하고 있다면, 이것은 숙제가 아닙니다. 나는 지루하다. –

관련 문제