生成随机电子邮件地址(更有效的追加)

时间:2015-09-29 18:14:16

标签: java

我正在介绍计算机科学,我们的教授给了我们一些实验室,其中一个是给学生发电子邮件。

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

我想我已经想到了,但我很好奇是否有更有效的方法去解决它。
我的问题是:
是否有一种更有效的方式对此进行编码,特别是对附加内容进行编码,这样我就不必为每个附加内容创建新的代码行?

我试图使用:
 append(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");

}

3 个答案:

答案 0 :(得分:1)

StringBuilder类就是:一个Builder,所以你可以使用append方法的好处,因为它返回的是你的类的实例self ...

试试这个:

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

答案 1 :(得分:1)

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

Random random = new Random();
int number = random.nextInt(1000);
String randoms = String.format("%03d", number);

答案 2 :(得分:0)

而不是这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));