2015-01-09 6 views
1

이 코드를 실행하고 기본적으로 방정식을 풀려고합니다. 그래서 저는 사용자에게 방정식을 작성하라고했습니다. 그것은 다음과 같이 보입니다 :문자열을 int로 출력하는 방법

System.out.println("Write an equation and I will solve for x."); 
int answer = in.nextLine(); 

그러나 나는 문자열과 int를 쓸 수 없습니다. String 응답 또는 int 응답을 말해야합니까?

+0

방정식을 입력하려면 '문자열 응답'을 입력하십시오. 그런 다음 파싱하고 연산자와 피연산자를 결정한 다음 x를 계산해야합니다. – J0e3gan

+0

구문 분석에 익숙하지 않습니다. 예제를 보여 주시겠습니까? – Nikki

+0

여기에 예가 나와 있습니다. http://stackoverflow.com/questions/787735/what-is-parse-parsing –

답변

0

int는 사용자가 숫자를 입력하기를 원할 때 사용하지만 여기에서는 숫자와 다른 문자의 조합을 찾고 있으므로 문자열을 사용해야합니다. 방정식을 문자열에 저장하면 방정식을 풀 수있는 다른 방법으로 나눌 수 있습니다. 그런 다음 답을 얻으려면 int 응답을 설정하십시오.

+0

그냥 방정식을 정수로 나눌 수있는 방법을 사용 하시겠습니까? – Nikki

+0

예제 방정식없이 질문하는 내용을 말하기는 어렵습니다. 하나의 변수 만 다루고 있습니까? –

+0

예, 코드가 작동하는지 확인하려면 6x = 3으로 입력하십시오. – Nikki

0

단순한 측면에서 사용자로부터 문자열을 입력해야하며 사용자가 방정식을 입력합니다.

그러면 방정식을 풀거나 계산하는 복잡한 부분이 있습니다.

1.) 자신의 파서를 만들어 operands/operator을 전달합니다.

2) 다음 방정식을 얻을 제공된 숫자/숫자가 아닌 값으로 분할하는 방법을 보여 작은 프로그램입니다 당신이 MVEL 또는 ANTLR

0

를 사용할 수있다, 일부 API에 값과 식을 제공 방정식 입력은 공백으로 구분됩니다. 그런 다음 숫자가 아닌 값이 무엇인지 판별하고 거기에서부터 진행할 수 있습니다.

import java.util.Scanner; 

public class SolveX{ 

    public static void main(String[] a){ 

     Scanner in = new Scanner(System.in); 
     System.out.println("Write an equation and I will solve for x."); 
     String input = ""; 

     while(in.hasNext()){ 
      input = in.next(); 
      try{ 
       double d = Double.parseDouble(input); 
       System.out.println("Double found at: " + input); 
       // Do what you need to with the numeric value 
      } 
      catch(NumberFormatException nfe){ 
       System.out.println("No double found at: " + input); 
       // Do what you need to with the non numeric value 
      } 
     } 
    }//end main 
}//end SolveX class 
+0

고마워요! 너무 많은 도움이되었습니다! – Nikki

+0

여러분을 환영합니다! –