私はアンドロイドの1行電卓を作っています。これまでのところ、この計算機は、javascript、c++、および c# で記述したときに機能しますが、android (java) では機能しません。これが私のコードです:
String seq = String.valueOf(sec.getText());
ArrayList<Integer> allNums = new ArrayList<Integer>();
int i = 0;
ArrayList<String> allSigns = new ArrayList<String>();
String currentNums = "";
for (i = 0; i< seq.length(); i++)
{
if (seq.charAt(i) != '+' && seq.charAt(i) != '-' && seq.charAt(i) != '*' && seq.charAt(i) != '/')
{
currentNums+=seq.charAt(i);
}
else
{
allNums.add(Integer.parseInt(currentNums));
currentNums="";
allSigns.add(String.valueOf(seq.charAt(i)));
}
}
allNums.add(Integer.parseInt(currentNums));
int result = (Integer)allNums.get(0);
for (i = 1; i <= allNums.size(); i++)
{
if (allSigns.get(i-1) == "+")
result+=allNums.get(i);
else if (allSigns.get(i-1) == "-")
result-=allNums.get(i);
else if (allSigns.get(i-1) == "*")
result*=allNums.get(i);
else if (allSigns.get(i-1) == "/")
result/=allNums.get(i);
else
{
sec.setText(String.valueOf(result));
break;
}
}
onClick イベントで関数を呼び出しています。アプリはクラッシュしませんが、答えとして最初の数字しか返ってきません。例: 34+31-4*8/1 34 を返します。