【问题标题】:Generating a random alpha string in Java [duplicate]在Java中生成一个随机的alpha字符串[重复]
【发布时间】:2013-03-02 04:46:49
【问题描述】:

我需要创建一个随机的字母串,但之前从未使用过随机类。

这里是规格: 创建一个要求用户输入姓名的小程序。 将名称存储在字符串中 打印名称 要求用户更改姓氏 将字符串操作为新的姓氏。 打印新名称。 创建一个无限循环,随机更改字符串变量。看看你的程序是否会崩溃。

到目前为止我有这个

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 (;;) {

        }
    }

}

如何在无限循环中创建一个随机的字母串以将姓氏更改为?我不确定字符串必须有多长。代码越简单越好。我很慢。

感谢您的指导

【问题讨论】:

  • 看!当我点击此页面时,右侧有一个link,这可能会有所帮助!
  • 我确实看到了那个链接,但我对任何答案都不满意。不过谢谢。
  • This answer 可能会有所帮助。

标签: java string random


【解决方案1】:

首先,只是一件小事:

String lastName=myInput.next();

比使用类字符串创建一个字符串然后为该字符串分配一个值要高效得多。

我对您的问题的解决方案是:

    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 数组,这使我们能够获取长度并更改“字符串”的各个元素。然后我们生成一个随机数作为随机生成的字符。

然后,我们将这个随机生成的数字转换为 casting 的字符。

它的作用是立即将值更改为此 ASCII 字符表中的一个字符:ASCII Characters

我们继续了解他们的新姓氏。然后将 char 数组转换回字符串,并打印字符串。

为了优化数字生成器的范围(在它生成 0 到 133 之间的那一刻),只需添加一个 do while 循环:

  do{
        randomNum=generator.nextInt(133);
  }while(randomNum>33 &&randomNum<120);

【讨论】:

    猜你喜欢
    • 2017-01-06
    • 2011-02-21
    • 2013-08-06
    • 2010-12-07
    • 2018-03-24
    • 1970-01-01
    • 2011-08-06
    • 2020-06-22
    相关资源
    最近更新 更多