2013-02-24 3 views
0

다항식 -x^2 + 2x - 1 = 0이라고 가정합니다. 파일에서 읽습니다.Java에서 다항식을 찾는 방법

다항식의 각 문자를 분석하는 코드가 있습니다.

다항식을 압축하는 추가 단계를 만들어서 (흰색 공백이 없어짐) 문자열이 사실 다항식의 마지막 2 인덱스를 검사하여 쉽게 확인할 수있는 다항식인지 확인할 수 있습니다. 이것은 등호이고 다음과 같이 0입니다. (= 0)

문제는 다항식 길이가 다른 ArrayList를 사용할 생각이 들었습니다. 문제는 ArrayList의 순차 인덱스에 각 문자를 저장하기 위해 ArrayList를 Character 유형으로 선언 할 수 없습니다.

public void createEquationNoWhiteSpaces(){ 
    // it cannot be done because there is no ArrayList of characters 
    textArrayList = new ArrayList<String>(); 
    for(int i = 0; i < text.length(); i++){ 
     // Store the characters of the polynomial in an ArrayList 
     // because each polynomial has different length 
     if(text.charAt(i) != ' ') 
      textArrayList = text.charAt(i); 
    } 
} 
+0

문자열 일의 모든 공백 제거 "등호이 같은 제로 (= 0)"문자열이 다항식 여부를 확인 할 수 있습니다. 프로그램에 문자열 "e^x = 0"이 주어지면 어떻게 될까요? 문제 영역에 다항식에 대한 근음 찾기가 포함되어 있으면 걱정할 필요가 없지만 문제가 명확하지 않습니다. –

+0

문자열에 문제가 있습니까? 또는 당신은 전통적인 표현을 갈 수 있습니다 - 계수의 벡터 – radai

+0

@AdamMihalcin 이것은 문자열에 charAt 메서드를 수행하고 ArrayList에 공백이 아닌 각 문자를 저장하는 추가 단계를 만들고 싶었던 이유입니다 문자 유형. 그래서 다항식이 간격을 두어 놓은 경우에도 프로그램은이 값에 맞출 수 있습니다. 그러나 어떤 이유로 든 문자 유형의 ArrayList를 만들 수는 없습니다. – Nicholas

답변

1

배열을 사용하려면 확실하게 ArrayList<Character>을 선언 할 수 있습니다. 그러나이 목적을 위해 목록 대신 StringBuilder을 사용하는 것이 좋습니다.

+0

StringBuilder를 사용해 보겠습니다. – Nicholas

1
st.replaceAll("\\s","") 

는 일반적으로, 당신은 단지 확인 할 수

+0

이 방법의 작동 방식을 이해할 수 없습니다. 첫 번째 인수에는 검은 색 슬래시가 있고 공백은 없습니다. – Nicholas

+1

http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#sum \ s는 모든 공백의 패턴입니다 – DominikM

+0

링크를 제공해 주셔서 감사합니다. – Nicholas

관련 문제