1

SMS メッセージを受信して​​読み取る Android アプリを作成しました。
現時点では、アプリケーションは SMS を読み取り、8 文字のメッセージしか受信しないため、それを 8 文字の配列に変換します。たとえば、メッセージは [A][b][C][d][E][f][G][h] に変換される "AbCdEfGh" の場合があります。

if (array[0] == 'a'){
                this.abortBroadcast();
                Toast.makeText(context, "a", Toast.LENGTH_LONG).show();
                context.sendBroadcast(in);
            }
            else if (array[0] == 'A'){
                //this.abortBroadcast();
                //Toast.makeText(context, "A", Toast.LENGTH_LONG).show();
                //context.sendBroadcast(in);
            }
            else if (array[1] == 'b'){
                this.abortBroadcast();
                Toast.makeText(context, "b", Toast.LENGTH_LONG).show();
                context.sendBroadcast(in);
            }
            else if (array[1] == 'B'){
                this.abortBroadcast();
                Toast.makeText(context, "B", Toast.LENGTH_LONG).show();
                context.sendBroadcast(in);
            }

私がアプリに実行させたいのは、これらの文字のそれぞれを読み取り、文字が大文字か小文字かによって何かを行うことです。たとえば、[0] が 'a' に等しい場合は何かを行い、[0] が [A] に等しい場合は何かを行い、次に移動して次の要素をチェックします。

配列の各要素を調べて、メッセージ内の各文字に対して何かを実行したいのですが、現在、アプリは「a」の場合は「a」、「A」の場合は「A」を完全に表示します。問題は、 「ab」と入力しても、「ab」ではなく「a」のみが表示されます。最初の文字を空白として入力すると、2 番目の文字のみが表示されます。たとえば、" b" は "b" を返します。

配列の組み合わせを選択して表示するには、コードをどのように配置すればよいですか?? 確かに、関係する可能性のある8文字の可能な組み合わせごとにコーディングする必要はありませんか?? switch ステートメントが解決策になる可能性はありますか? ある種のループを実装して、最初の配列要素を確認したら、ループして次の要素を確認することは可能でしょうか?? 私がこれを非常に明確に説明していない場合は、申し訳ありません! うまくいけば、私よりも少し経験のある人がこの問題を解決できるでしょう。助けてくれてありがとう

4

4 に答える 4

0

コードで if-else ステートメントを使用します。array[0] が a に等しい場合、条件 array[1] == 'B' はチェックされません。

       if (array[0] == 'a'){
            this.abortBroadcast();
            Toast.makeText(context, "a", Toast.LENGTH_LONG).show();
            context.sendBroadcast(in);
        }
        else if (array[0] == 'A'){
            //this.abortBroadcast();
            //Toast.makeText(context, "A", Toast.LENGTH_LONG).show();
            //context.sendBroadcast(in);
        }
        if (array[1] == 'b'){
            this.abortBroadcast();
            Toast.makeText(context, "b", Toast.LENGTH_LONG).show();
            context.sendBroadcast(in);
        }
        else if (array[1] == 'B'){
            this.abortBroadcast();
            Toast.makeText(context, "B", Toast.LENGTH_LONG).show();
            context.sendBroadcast(in);
        }
于 2013-08-08T09:48:57.503 に答える