2013-03-26 4 views
0

실수 (음수 포함)에 대한 중위 수식에서 후치 식으로 변환 할 수있는 응용 프로그램을 만들었습니다. 첫 번째에 음수를 넣은 다음 다른 숫자를 뺀 것을 제외하고는 완벽하게 작동합니다. 예 : -1 - 2 또는 -2 + 8 - 9. 그것은 -1-2-2 8-9 +을 보여줍니다. -1 2 --2 8 + 9 -이어야합니다. 기호가 - 일 때 확실히 문제가됩니다. 이것은 입력 코드가 '-'인 경우 코드의 일부입니다. 실제 숫자 (음수 숫자 포함) 뒤에 접미사

for (int j = 0; j < input.length(); j++) { 
    char ch = input.charAt(j); 
    if (ch == '-') { 
        if ((ch == input.charAt(0)) || (input.charAt(j - 1) == '(') 
          || (input.charAt(j - 1) == '-')) 
         temp = temp + ch; 
        else { 
         output = output + temp + " "; 
         temp = ""; 
         gotOper(ch, 1); 
        } 
       } 
    else if .. 
    ... 
    } 

앱을 -를 발견하고는 input의 첫 번째 또는 ( 후 나 - 후 그래서 음수이고 내가 임시 변수에 넣어합니다. 0에서 9 사이이거나 . 일 때 같은 것입니다. 그렇지 않으면 피연산자와 피연산자는 temp에 넣고 output에 넣고 스택과 함께 작업을 수행합니다. 전체 코드를 표시 할 수 없으며, 매우 길다! 누군가 나를 기쁘게 도와 줄 수 있습니까?

편집 : 나는 문이 경우 (j == 0)로 대체해야 모든 공백 두 번째의

+0

중위 어를 후위 문자로 변환한다는 의미입니까? – raptortech97

+0

예! 미안, 나는 좋은 밤을 보내지 않았다. – mpluse

답변

2

이 부분 (ch == input.charAt(0))를 제거하려면이 input = input.replaceAll("\\s+", "");했다. 그렇지 않으면 입력이 '-'으로 시작하는 경우 ch == '-'이 될 때마다 true를 반환합니다.

+0

너는 내 목숨을 구했다. 너는 내 하루를 보냈다. 고맙습니다! – mpluse

관련 문제