Javaで電卓を構築しようとしています。それを構築するには、各整数を配列に分割する必要があります。を使用して、「+」記号の前後の各整数を分割しsplit("\\+")
ました。
しかし、他のオペレーターはどうですか?「+」を使用中に「-」、「/」、「*」を使用できますか?
Javaで電卓を構築しようとしています。それを構築するには、各整数を配列に分割する必要があります。を使用して、「+」記号の前後の各整数を分割しsplit("\\+")
ました。
しかし、他のオペレーターはどうですか?「+」を使用中に「-」、「/」、「*」を使用できますか?
さて、あなたの当面の質問に答えるために(あなたはいくつかの演算子をでエスケープする必要があります\\
):
"1+2-3/4".split("[+\\-*/]")
ただし、これにより演算子が破棄されるため、より高度なものが必要になります。また、浮動小数点数をサポートすることもできます。最後になりましたが、解析が完了したら、演算子の優先順位について覚えておいてください。
この場合、使用できます
for(char ch : "1+2-3/4".toCharArray()) {
System.out.println(ch);
}
複数桁の数値と負の数値が必要な場合は、単純なパーサーを作成する必要があります。-1+-2
過去に、列挙型ベースのステート マシンを使用してテストを解析しました。トークンのストリームを取得したら、優先ルールを作成できます。