0

ランダムな文字列は正常に機能します。

現在チェックが機能しません。EditTextで描いたものにテキストを入力します。

しかし、チェックは機能していません。なんで?コード:

    public static StringBuffer random() {
        String str = new String(
                "G12HIJdefgPQRSTUVWXYZabc56hijklmnopqAB78CDEF0KLMNO3rstu4vwxyz9");
        StringBuffer sb = new StringBuffer();
        sb.toString();
        String ar = null;
        Random r = new Random();
        int te = 0;
        for (int i = 1; i <= 10; i++) {
            te = r.nextInt(62);
            ar = ar + str.charAt(te);
            sb.append(str.charAt(te));
        }
        return sb;
    }

    public void onCreate(Bundle icicle) {
        setContentView(R.layout.main);
        random = random().toString();
        TextView display = (TextView) findViewById(R.id.textView1);
        display.setText("Random Number: " + random); // Show the random number
        et = (EditText) findViewById(R.id.etNumbers);
        ok = (Button) findViewById(R.id.button1);
        ok.setOnClickListener(this);

    }

    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        try {
            charsEntered = et.getText().toString();
        } catch (NumberFormatException nfe) {
            Toast.makeText(et.getContext(), "Bla bla bla", Toast.LENGTH_LONG)
                    .show();
        }

        if (random == charsEntered) {
            Toast.makeText(et.getContext(), "Good!", Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(et.getContext(), "Bad!", Toast.LENGTH_LONG).show();
        }
    }
}
4

4 に答える 4

2

試す

if (random.equalsIgnoreCase(charsEntered))
于 2012-08-25T08:20:00.407 に答える
0

String.equalsの代わりに使用==

于 2012-08-25T08:20:39.080 に答える
0

==2 つの文字列を演算子で比較しようとしています。これは Java 7 まで文字列を比較できず、Android は Java 6 に基づいています。

if (random.equalsIgnoreCase(charsEntered))

チェックで大文字と小文字が区別されない場合、または

if (random.equals(charsEntered))

チェックで大文字と小文字が区別される場合。

于 2012-08-25T08:22:01.197 に答える
0

StringBufferクラスとクラスを比較していStringます。以下を試してください。

    if ( random.toString().equals(charsEntered) )
    {
        Toast.makeText(et.getContext(), "Good!", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(et.getContext(), "Bad!", Toast.LENGTH_LONG).show();
    }
于 2012-08-25T08:22:30.163 に答える