Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成随机电子邮件地址(更高效的附加)_Java - Fatal编程技术网

Java 生成随机电子邮件地址(更高效的附加)

Java 生成随机电子邮件地址(更高效的附加),java,Java,我正在学习计算机科学的入门课程,教授给我们做了一些实验,其中之一就是给学生发电子邮件 规则是: 1.向用户询问姓名。 2.使用名字的第一个字母、姓氏的前6个字母和一个3位随机数来创建电子邮件地址。全部小写。 示例:如果用户输入Joe Humphry,则输出为: jhumphr167@students.nyu.edu. 我想我已经弄明白了,但我很好奇是否有更有效的方法来解决这个问题。 我的问题是: 有没有更有效的方法来编写代码,特别是使用附录,这样我就不必为每个附录编写新的代码行了? 我尝试使用:

我正在学习计算机科学的入门课程,教授给我们做了一些实验,其中之一就是给学生发电子邮件

规则是:
1.向用户询问姓名。
2.使用名字的第一个字母、姓氏的前6个字母和一个3位随机数来创建电子邮件地址。全部小写。
示例:如果用户输入Joe Humphry,则输出为:
jhumphr167@students.nyu.edu.

我想我已经弄明白了,但我很好奇是否有更有效的方法来解决这个问题。
我的问题是:
有没有更有效的方法来编写代码,特别是使用附录,这样我就不必为每个附录编写新的代码行了?

我尝试使用:
追加(num1、num2、num3)

无济于事

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    //asks for first name
    System.out.println("What is your first name?");
    String firstname = scan.next();


    //asks for last name
    System.out.println("What is your last name?");
    String lastname = scan.next();
    if (lastname.length()>6)
        lastname = lastname.substring(0,6);

    //generates random number
    int min = 0;
    int max = 9;
    StringBuilder randoms = new StringBuilder();
    Random random = new Random();
    int num1 = random.nextInt(max-min+1)+min;
    int num2 = random.nextInt(max-min+1)+min;
    int num3 = random.nextInt(max-min+1)+min;
    randoms.append(num1);
    randoms.append(num2);
    randoms.append(num3);

    // combine and print
    System.out.println(firstname.toLowerCase().charAt(0)
                        + lastname.toLowerCase()
                        + randoms
                        + "@students.nyu.edu");

}

StringBuilder类就是这样的:一个生成器,所以您可以使用append方法的优点,因为它返回的是类的实例本身

试试这个:

randoms.append(num1).append(num2).append(num3);

而不是这6行

int num1 = random.nextInt(max-min+1)+min;
int num2 = random.nextInt(max-min+1)+min;
int num3 = random.nextInt(max-min+1)+min;
randoms.append(num1);
randoms.append(num2);
randoms.append(num3);
简单地说

 randoms.append((random.nextInt(max-min+1)+min)+""+(random.nextInt(max-min+1)+min)+""+(random.nextInt(max-min+1)+min));

您可以一次生成三位数字,而不是生成三个单独的数字。请记住格式化数字,这样当它生成值0时,您将得到“jhumphr000”而不是“jhumphr0”


StringBuilder
中没有这样的方法
append(num1,num2,num3)
。这帮助最大,但它使我的问题变得过时,因为如果我使用此方法,StringBuilder将不再相关。我使用它的唯一原因是因为我很难连接不同的类型。谢谢你,好心的先生。我很高兴能帮上忙!您询问是否有更有效的编码方法,但没有指定要使用生成器,因此我提供了一种更简洁的方法。另外,如果你把我的答案标记为已接受,我会很高兴的!
Random random = new Random();
int number = random.nextInt(1000);
String randoms = String.format("%03d", number);