Android random string generator
android
Solution
There are a few things wrong with your code.
You cannot cast from an int to a string. Cast it to a char instead. This however will only give you a single char so instead you could generate a random number for the length of your string. Then run a for loop to generate random chars. You can define a StringBuilder as well and add the chars to that, then get your random string using the `toString()` method
example:
public static String random() {
Random generator = new Random();
StringBuilder randomStringBuilder = new StringBuilder();
int randomLength = generator.nextInt(MAX_LENGTH);
char tempChar;
for (int i = 0; i < randomLength; i++){
tempChar = (char) (generator.nextInt(96) + 32);
randomStringBuilder.append(tempChar);
}
return randomStringBuilder.toString();
}
Also, you should use `random.compareTo()` rather than ==
Problem
I have a problem. I want to draw a random String something like this aXcFg3s2. What i doing bad ? How change my `random()` ``` private String random; private String charsEntered; private EditText et; private Button ok; CaptchaInterface.OnCorrectListener mCorrectListener; public void setOnCorrectListener(CaptchaInterface.OnCorrectListener listener) { mCorrectListener = listener; } public TextCaptcha(Context context) { super(context); getWindow().requestFeature(Window.FEATURE_NO_TITLE); } public static String random() { Random generator = new Random(); String x = (String) (generator.nextInt(96) + 32); return x; } public void onCreate(Bundle icicle) { setContentView(R.layout.main); random = random(); 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(); } } ```