首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java创建一个方法来读取和混洗现有数组的元素

Java创建一个方法来读取和混洗现有数组的元素
EN

Stack Overflow用户
提问于 2018-12-05 04:10:05
回答 1查看 576关注 0票数 0

我一直在研究这些链接:Randomly select an item from a list printing an array from .txt file java How to shuffle the contents of an array

但是他们在帮助我的同时也在迷惑我?

我很确定我想用这条线

代码语言:javascript
复制
public static void shuffle `(String[] array)` // mix-up the array

但我不确定是什么线

代码语言:javascript
复制
(String[] array)

都在引用。

我希望有一个方法来读取一个数组(需要先读取它,这样它才知道要混洗什么,对吧??),对它进行混洗,然后保存新的文本文件;或者读取一个数组,然后从列表中随机拉出一个。

我对如何将ArrayList和string一起使用感到困惑。

如何告诉Java要读取哪个文件?我如何准确地告诉它如何解析它正在读取的内容。我应该让它逐行读取,然后随机抽取一行显示给我吗?

代码语言:javascript
复制
public static void Encounter()

Scanner wildInput = new Scanner(new File("WildPkmn.txt"));

randomGenerator = new Random();

    }
}
See:
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-05 04:18:27

您首先需要读取您的文件,可以执行以下操作:

代码语言:javascript
复制
List<String> result;
try (Stream<String> stream = Files.lines(Paths.get("WildPkmn.txt"))) {
     result = stream.collect(toList());
} catch (IOException e) { e.printStackTrace(); }

那么我建议把你的方法签名改成:

代码语言:javascript
复制
public static void shuffle (List<String> source){
      // look into Collections.suffle
      // etc..
}

或者你可能想完全摆脱这个方法,因为Collections.suffle只有一行代码……

但是,假设您严格需要一个数组并在此基础上执行进一步的逻辑,那么您可以将上面的第一个示例代码片段更改为:

代码语言:javascript
复制
String[] result;
try (Stream<String> stream = Files.lines(Paths.get("WildPkmn.txt"))) {
     result = stream.toArray(String[]::new);
} catch (IOException e) { e.printStackTrace(); }

希望这是一个很好的开始,让你继续你的逻辑……

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53620676

复制
相关文章

相似问题

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