Generating a random alpha string in Java
本问题已经有最佳答案,请猛点这里访问。
我需要创建一个随机的字母串,但以前从未使用过随机类。
规格如下:创建一个小程序,要求用户输入其名称。将名称存储在字符串中打印姓名要求用户更改姓氏将字符串操作为新的姓氏。打印新名称。创建将随机更改字符串变量的无限循环。看看你的程序是否会崩溃。
到目前为止我有这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import java.util.Scanner; import java.util.Random; public class StringNames { public static void main(String[] args) { System.out.println("Please enter a name"); Scanner myInput = new Scanner(System.in); String firstName = new String(); firstName = myInput.next(); String lastName = new String(); lastName = myInput.next(); System.out.println(firstName +"" + lastName); System.out.println("Please change your last name"); lastName = myInput.next(); System.out.println(firstName +"" + lastName); for (;;) { } } } |
如何创建一个随机的字母字符串,以便在无限循环中将姓氏更改为?我不确定这根绳子要多长时间。代码越简单越好。我很慢。
谢谢你的指导
首先,只是一件小事:
1 |
比用类字符串创建一个字符串,然后为该字符串赋值要有效得多。
我的解决方案是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import java.util.Scanner; import java.util.Random; public class StringNames { public static void main(String[] args) { Random generator=new Random(); Scanner myInput = new Scanner(System.in); System.out.println("Please enter a name"); String firstName = myInput.next(); System.out.println("Please enter a last name"); String lastName = myInput.next(); System.out.println("Your name is:"); System.out.println(firstName +"" + lastName); System.out.println("Please change your last name"); lastName = myInput.next(); System.out.println(firstName +"" + lastName); char[] lastNameChar=lastName.toCharArray(); for (int i=0;i<lastNameChar.length;i++) { int randomNum=generator.nextInt(133); lastNameChar[i]=(char)randomNum; } lastName=String.valueOf(lastNameChar); System.out.println(firstName +"" + lastName); } } |
号
它的作用是提示您输入指定的名称等。然后有一个for循环。当它们更改名称时,该字符串将转换为char数组,这样我们就可以获取长度并更改"string"的各个元素。然后我们生成一个随机数作为随机生成的字符。
然后我们将随机生成的数字转换成一个字符。
它的作用是立即将该值更改为该ASCII字符表中的字符:ASCII字符
我们将继续为他们的新姓氏命名。然后将char数组转换回字符串,并打印该字符串。
为了优化数字生成器的范围(在0到133之间生成的分钟),只需添加一个do-while循环:
1 2 3 | do{ randomNum=generator.nextInt(133); }while(randomNum>33 &&randomNum<120); |