我正在尝试使用计算器代码。
我的设计链接https://i.stack.imgur.com/KrzRD.png
如果我的字符串s1值= 2 * 5 * 7 + 1 + 4
在我的代码的这一部分中如何处理以获得文本视图中的结果
s1 = (edt1.getText()+"");
ArrayList<String> buffer = new ArrayList<String>();
String temp = "";
for (int j = 0; j < s1.length(); j++) {
if (Character.isDigit(s1.charAt(j)) || s1.charAt(j) == '.') {
char c1 = s1.charAt(j);
temp = temp + String.valueOf(c1);
}
if (s1.charAt(j) == '+' || s1.charAt(j) == '-' || s1.charAt(j) == '*' || s1.charAt(j) == '/') {
buffer.add(temp);
temp = "";
buffer.add(String.valueOf(s1.charAt(j)));
}
}
buffer.add(temp);
答案 0 :(得分:0)
你的主要问题是在这一行edt1.setText(edt1.getText() +s2);
和任何这样的行,(+)si不是计算过程,它是两个字符串之间的连接所以你必须使s2 int而不是string < / strong>并解析edittext中的文本,如此 Integer.parse(edt1.getText(。。tostring())到(+)将是2号之间的钙化过程而不是连接过程
答案 1 :(得分:0)
您正在整理字符串,请在下面使用
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(Interger.parseInt(edt1.getText().toString()) + Interger.parseInt(s7));
}
});