2016-07-03 5 views
-5

私は電卓をコーディングしています。演算子のインデックスをchar配列で検索したいと思います。それはchar型の配列ではなく文字を期待して、私はif文のエラーを取得しますchar配列の特殊文字のインデックスを取得する[JAVA]

looking of the code:

:私のコードは今のように見えます。

どうすればこの仕事をすることができますか?

+1

'='の代わりに '==' ... – Tunaki

+0

charの代わりにchararrayが必要なので、私はまだエラーが発生します。 –

答えて

1

の代わりにあなたが直接

ArrayList<String> texto = new ArrayList<String>(); 
texto.add(text); 

のような配列に文字列を格納することができ、その後、あなたは文字列の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)); 
} 
} 
} 

このコードを短くする方法は他に

  1. は、アレイ内のすべての演算子を入れた後、ループを通してそれを一致しています。
  2. ここで使用した正規表現

単一の文字列のために更新されたコード

ArrayList<Integer> indexOperator = new ArrayList<Integer>(); 
char[] operators={ '+', '-', '*', '/'}; 
for(char operator:operators) { 
if(txt.indexOf(operator)!= -1){ 
    indexOperator.add(txt.indexOf(operator)); 
} 
} 

お役に立てば幸いです。

+0

ありがとう!しかし、私は本当にArrayListに格納する必要はありません、私はちょうど単一の文字列を持っていますか?¿? –

+0

ええええええええええええええええええええええええええええええんリストのリストは間違いなく必要ありません。 –

+0

も同様にコードが追加されました –

関連する問題