我需要创建一个随机的字母字符串,但以前从未使用过随机类。
的规格如下:创建一个小程序,要求用户输入他们的名字。将名称存储在字符串中打印名称要求用户更改他们的姓氏将字符串操作为新的姓氏。打印新名称。创建一个将随机更改字符串变量的无限循环。查看你的程序是否会崩溃
到目前为止我有这个
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 (;;) {
}
}
}
如何在无限循环中创建一个随机的字母字符串来更改姓氏?我不确定这个字符串有多长。代码越简单越好。我动作慢。
谢谢您的指导
首先,只是一件小事:
String lastName=myInput.next();
比用string类创建字符串然后给字符串赋值要高效得多。
我对你的问题的解决方案是:
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 '的各个元素。然后我们生成一个随机数作为随机生成的字符。
然后我们将随机生成的数字转换为char类型。
它的作用是立即将值改为ASCII字符表中的一个字符:
我们继续计算他们新姓的长度。然后将char数组转换回字符串,并打印该字符串。
为了细化你的数字生成器的范围(在它生成0到133之间的那一刻),只需添加一个do while循环:
do{
randomNum=generator.nextInt(133);
}while(randomNum>33 &&randomNum<120);