文字列を入力としたいJavaプログラムを作りたいと思います。文字列には2つの整数があり、処理は実行されます。例えば、 。 25 + 85 または15 * 78文字を分割する際に文字列を分割する方法は、動的か不明ですか?
出力は文字列の解になります。
しかし、実行前に演算子の記号がわからないため、文字列を分割する方法がわかりません。
文字列を入力としたいJavaプログラムを作りたいと思います。文字列には2つの整数があり、処理は実行されます。例えば、 。 25 + 85 または15 * 78文字を分割する際に文字列を分割する方法は、動的か不明ですか?
出力は文字列の解になります。
しかし、実行前に演算子の記号がわからないため、文字列を分割する方法がわかりません。
String.contains("+");
を使用して、使用している操作を確認し、サポートしたい他のすべての演算子をチェックするとよいでしょう。次に、その演算子がどこにでも分割されます。String.split("+")
。そこからString.split("+")
の出力をInteger.parseInt(String s)
を使用して解析し、合計を返します。かなり簡単、幸運。
あなたは数字以外の文字で入力を分割するためにStringクラスのsplit()
メソッドを使用することができます。
input.split("\\D");
これはあなただけの数字を含む配列を与えるだろう。 私はオペレータを何とかしたいと思いますか?最もエレガントな方法ではありませんが、input.replaceAll("[^\\*\\+\\-\\/]", "")
から始めて、演算子ではないものをすべて削除することができますが、入力フィルタリングは慎重に行う必要があります。私が入力するとどうなります5+4*6
oder 2+hello
?
https://stackoverflow.com/questions/7138038/commandline-java-calculator –
Splitは正規表現を使用しているので、単に 'input.split(" [* * \\ - \\ /] ")'は4つの基本操作。 – Michael
なぜあなたはそれのためのjavascriptソリューションを使用していない、Javaはその中にjavascriptを持っている、あなたは数学的操作の文字列を評価するために、次のコードを使用することができます。 ---------- 'ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngineエンジン= manager.getEngineByName( "js"); Object result = engine.eval( "4 * 5"); ' – Muhammad