我一直在研究这些链接:Randomly select an item from a list printing an array from .txt file java How to shuffle the contents of an array
但是他们在帮助我的同时也在迷惑我?
我很确定我想用这条线
public static void shuffle `(String[] array)` // mix-up the array
但我不确定是什么线
(String[] array)
都在引用。
我希望有一个方法来读取一个数组(需要先读取它,这样它才知道要混洗什么,对吧??),对它进行混洗,然后保存新的文本文件;或者读取一个数组,然后从列表中随机拉出一个。
我对如何将ArrayList和string一起使用感到困惑。
如何告诉Java要读取哪个文件?我如何准确地告诉它如何解析它正在读取的内容。我应该让它逐行读取,然后随机抽取一行显示给我吗?
public static void Encounter()
Scanner wildInput = new Scanner(new File("WildPkmn.txt"));
randomGenerator = new Random();
}
}
See:
}
发布于 2018-12-05 04:18:27
您首先需要读取您的文件,可以执行以下操作:
List<String> result;
try (Stream<String> stream = Files.lines(Paths.get("WildPkmn.txt"))) {
result = stream.collect(toList());
} catch (IOException e) { e.printStackTrace(); }
那么我建议把你的方法签名改成:
public static void shuffle (List<String> source){
// look into Collections.suffle
// etc..
}
或者你可能想完全摆脱这个方法,因为Collections.suffle
只有一行代码……
但是,假设您严格需要一个数组并在此基础上执行进一步的逻辑,那么您可以将上面的第一个示例代码片段更改为:
String[] result;
try (Stream<String> stream = Files.lines(Paths.get("WildPkmn.txt"))) {
result = stream.toArray(String[]::new);
} catch (IOException e) { e.printStackTrace(); }
希望这是一个很好的开始,让你继续你的逻辑……
https://stackoverflow.com/questions/53620676
复制相似问题