0

ユーザーに 4x+3x-2x のような多項式を入力させようとしています。次に、各用語を解析して文字列配列にします。私はそれを機能させていますが、私の問題は、+ と - ではなく、+ または - でしか実行できないことです。

    //instance variables
    Scanner scan = new Scanner(System.in);
    String polynomial = "";

    //takes in the polynomial
    System.out.println("Enter a polynomial");
    polynomial = scan.next();

    //print the polynomial
    System.out.println("\n" + "Your polynomial is "+ polynomial);   

    //parse the polynomial into a StringArray
    String[] polyArray = polynomial.split("\\-");  

<--------- この部分をマイナスだけでなく、プラスやマイナスも受け入れるようにするにはどうすればよいですか?

4

1 に答える 1

3

区切り文字を消費するプラス/マイナスで分割する場合:

String[] polyArray = polynomial.split("[-+]");

*before/after plus/minus を分割して、演算子を独自の文字列として保持する場合は、それらを消費しない正規表現が必要です。

String[] polyArray = polynomial.split("(?=[-+])|(?<=[-+])");

この最後の正規表現はlook aroundsを使用します。これはアサートしますが、入力を消費しません (それらはゼロ幅の一致です)。

于 2013-11-03T04:01:15.357 に答える