首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何写出一个随机的名字?

如何写出一个随机的名字?
EN

Stack Overflow用户
提问于 2016-04-17 22:36:45
回答 2查看 59关注 0票数 1

我的文件中有8个名称,每一行只有一个名称。

我想随便写一个名字。我已经编写了一些代码,但我不知道我将如何继续。(我试图在不使用数组的情况下解决这个问题,因为我们还没有学习)。我的名单上有这些名字;

代码语言:javascript
复制
patrica
natascha
lena
sara
rosa
kate
funny
ying

我想用system.out.println随机写出一个名字

这是我的代码:

代码语言:javascript
复制
BufferedReader inputCurrent = new BufferedReader(new FileReader("aText.txt"));

    String str;
    int rowcounter =0;
    int mixNum =0;
    String strMixNum=null;
    while((str = inputCurrent.readLine())!= null){
        rowcounter++; 
        mixNum = rnd.nextInt(rowcounter)+1;
        //strMixNum = ""+strMixNum;

        String str2;
        while((str2 = inputCurrent.readLine())!= null){
            // i dont know what i s shall write here
            System.out.println(str2);
        }
    }

    inputCurrent.close();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-17 22:49:56

因为您还没有了解数组或列表,所以您可以先找出您想要的数字单词,并在到达时停止读取该文件。

所以,如果你知道你有8个单词,你就这样做:

代码语言:javascript
复制
int wordToGet = rnd.nextInt(8); // returns 0-7
while ((str = inputCurrent.readLine()) != null) {
    if (wordToGet == 0)
        break; // found word
    wordToGet--;
}
System.out.println(str); // prints null if file didn't have enough words

一旦您了解了Java的诀窍,您就可以折叠代码,尽管对读者来说它变得不那么清晰了,所以您可能不应该这样做:

代码语言:javascript
复制
int wordToGet = rnd.nextInt(8);
while ((str = inputCurrent.readLine()) != null && wordToGet-- > 0);
System.out.println(str);
票数 5
EN

Stack Overflow用户

发布于 2016-04-17 22:41:18

您可以简单地读取所有的名称,将它们存储在列表中,然后随机选择一个索引:

代码语言:javascript
复制
List<String> names = Files.readAllLines(Paths.get("aText.txt"));
// pick a name randomly:
int randomIndex = new Random().nextInt(names.size());
String randomName = names.get(randomIndex);
System.out.println(randomName);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36682992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档