【发布时间】:2016-07-03 17:09:50
【问题描述】:
我正在编写一个计算器,我想在 char 数组中找到运算符索引。我的代码现在看起来像:
我在 if 语句中遇到错误,因为它需要一个 char 数组而不是一个 char。
我怎样才能使这项工作或我有什么不好?
【问题讨论】:
-
使用
==而不是=... -
我仍然得到一个错误,因为它需要一个 chararray 而不是一个 char。
我正在编写一个计算器,我想在 char 数组中找到运算符索引。我的代码现在看起来像:
我在 if 语句中遇到错误,因为它需要一个 char 数组而不是一个 char。
我怎样才能使这项工作或我有什么不好?
【问题讨论】:
== 而不是=...
您可以直接将字符串存储在数组中,而不是存储 char 数组
ArrayList<String> texto = new ArrayList<String>();
texto.add(text);
然后您可以使用 String indexOf 函数搜索运算符索引。
所以你的最终代码将是这样的:
ArrayList<Integer> indexOperator = new ArrayList<Integer>();
ArrayList<String> texto = new ArrayList<String>();
texto.add(txt);
for(int i = 0; i<texto.size; i++){
for(char operator:operators) {
if(texto.get(i).indexOf(operator)!= -1){
indexOperator.add(texto.get(i).indexOf(operator));
}
}
}
缩短此代码的其他方法是
为单个字符串更新代码
ArrayList<Integer> indexOperator = new ArrayList<Integer>();
char[] operators={ '+', '-', '*', '/'};
for(char operator:operators) {
if(txt.indexOf(operator)!= -1){
indexOperator.add(txt.indexOf(operator));
}
}
希望对您有所帮助。
【讨论】: