我正在尝试为Android编写一个Calculator应用程序。 对于4个主要的运算符( - * / +)我使用了这个方法,其中3个没有任何问题,但对于+运算符,它无法识别字符串i中的+符号。他是我和/和+运营商的代码:
case R.id.buttonEql:
current=show.getText().toString();
if(current.contains("/"))
{ current+=input.getText().toString();
show.setText(current);
parts = current.split("/");
firstNumber = Integer.parseInt(parts[0]);
secondNumber = Integer.parseInt(parts[1]);
operationResult = firstNumber/secondNumber;
show.setText("");
show.setText(String.valueOf(operationResult));
input.setText("0");
}
else if (current.contains("\\+"))
{current=show.getText().toString();
current+=input.getText().toString();
show.setText(current);
parts = current.split("\\+");
firstNumber = Integer.parseInt(parts[0]);
secondNumber = Integer.parseInt(parts[1]);
operationResult = firstNumber+secondNumber;
show.setText("");
show.setText(String.valueOf(operationResult));
input.setText("0");}
答案 0 :(得分:4)
在其他情况下如果有条件,那么做什么呢
current.contains("+").
你正在传递一个正则表达式(转义它),你不应该为String包含函数。检查Java API Doc for String
答案 1 :(得分:2)
请使用contains()
而不转义,split()
使用转义
current.contains("+")
current.split("\\+")