计算器输出错误
Calculator output error
我正在尝试计算器代码。
我的设计linkhttps://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);
你的主要问题是这一行 edt1.setText(edt1.getText() +s2);
和任何像这样的行,(+) si 不是计算过程,它是两个字符串之间的连接所以你必须 make s2 int而不是 string 并将 edittext 中的文本解析为 Integer.parse(edt1.getText().tostring()) 到 (+)将是两个数字之间的计算过程而不是连接过程
您正在连接字符串,请改用下面的方法
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(Interger.parseInt(edt1.getText().toString()) + Interger.parseInt(s7));
}
});
我正在尝试计算器代码。
我的设计linkhttps://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);
你的主要问题是这一行 edt1.setText(edt1.getText() +s2);
和任何像这样的行,(+) si 不是计算过程,它是两个字符串之间的连接所以你必须 make s2 int而不是 string 并将 edittext 中的文本解析为 Integer.parse(edt1.getText().tostring()) 到 (+)将是两个数字之间的计算过程而不是连接过程
您正在连接字符串,请改用下面的方法
button7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText(Interger.parseInt(edt1.getText().toString()) + Interger.parseInt(s7));
}
});