2017-04-21 75 views
0

我试图为Android编写一个计算器应用程序。对于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");} 
+3

你为什么要逃避它?不会“+”足够吗? – rotgers

+0

根据这个职位:http://stackoverflow.com/a/3481842/5752702它应该像这样工作。我没有运气就尝试过你的解决方案。现在我重新启动计算机并再次尝试它,它没有\\。谢谢 –

+0

我怀疑这是由于重新启动计算机,但确定。 :-)其他人提出了相同的答案,可能将其中之一标记为已接受。 – rotgers

回答

4

在否则,如果条件下,这样做只是 current.contains("+").

你什么正在传递一个正则表达式(转义它),您不应该为String包含函数。检查字符串的Java API文档

2

请使用没有逃逸,split()与逃避

current.contains("+") 

current.split("\\+") 
相关问题