私には難解なことがあります。可能なさまざまな数学文字列を別のエンティティに分割してArrayListに格納する必要があります。数式演算子を使用したJava正規表現
スキャナからの入力は次のいずれかになります。
Scanner input = new Scanner(System.in);
String read = input.nextLine();
ArrayList al = new ArrayList();
-5 + 10 //possible value of read
9--5 //possible value of read
-20* 10 //possible value of read
は基本的に私は、最初の数と潜在的な負の符号、すべて無視して先頭または末尾の空白を取得し、それを格納する必要があり、その後、空白を無視して次の文字を取ると、それ(問題のオペレータ)を格納し、次の数字にオプションの負の符号を付け、再び空白を無視します。
私は正規表現ではあまりよくありません。ここでは、どのように対処するかわからない複雑な可能性がたくさんあります。私は論理的にそれをレイアウトしなければならないとしたら
、私は以下のようなものをそれを言う:
それを直接次の最後の番号の桁で最初の非空白文字と終了を取得します。
次の非空白文字を取得しますが、それを直接次の最後の数桁で次の非空白文字と終了を取得します。
これを達成するための構文の指針はありますか?
編集:私は単に問題の式の結果を解明しようとするのではなく、後で分数クラスの一部として操作するために、それを分解してArrayListに格納する必要があります。
をつかむますので
パイプが意味する「または」空白まで、すべてをつかみますこれはネストされた算術式ではスケールされないためです。むしろパーサが必要です。 –
regexを使う必要がありますか?そうでない場合は、この[answer](http://stackoverflow.com/a/36341949/4256677)を参照してください。 – varontron