已知字符的范围是 \u0000 至 \uFFFF,要求根据用户给定的长度,生成一串该长度的随机字符串。另外在这个范围内有很多的乱码,最好加以限制。
这里面有个很有意思的地方是因为要保证输入的长度,而不是循环次数,可以在循环里使用 i--
来废弃本次循环。
import java.util.Scanner;
public class lianxi2 {
public static void main(String[] args) {
System.out.println("请输入字符串的长度:");
int len = new Scanner(System.in).nextInt();
String result = "";
for (int i=0; i<len; i++) {
char c = (char)(Math.random()*(0xffff+1));
if ((c>='0' && c<='9')||(c>='a' && c<='z')||(c>='A' && c<='Z')) {
result += c;
} else {
i--;
}
}
System.out.println(result);
}
}
当然这是一个不明确知道循环次数的问题,使用 while 会更简单。