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

您正在尝试将两个字符串与==运算符进行比较。这在 Java 7 之前无法比较字符串,并且 Android 基于 Java 6。尝试使用:

if (random.equalsIgnoreCase(charsEntered))

如果检查不区分大小写或

if (random.equals(charsEntered))

如果检查区分大小写。

于 2012-08-25T08:22:01.197 回答
0

您正在将StringBufferClass 与StringClass 进行比较,请尝试以下操作,

    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 回答