Java 创建一个方法来读取和打乱现有数组的元素

标签 java arrays shuffle

我一直在仔细研究这些链接: 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 与字符串一起使用感到困惑。

我如何告诉 Java 要读取哪个文件?我如何准确地告诉它如何解析它正在读取的内容。我应该让它逐行阅读并随机拉一条线给我看吗?

public static void Encounter()

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

randomGenerator = new Random();

    }
}
See:
}

最佳答案

您首先需要读取您的文件,可以按如下方式完成:

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

希望这是您继续逻辑的良好开端...

关于Java 创建一个方法来读取和打乱现有数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53620676/

相关文章:

Java(处理1.5.1): Fluent interface @ multilevel inheritance via generics

java - 将整数添加到节点内的数组中

java - 不断询问,直到使用二维数组给出正确的值

arrays - 在二维数组的每一行的末尾 append 一个列表

javascript - 扑克牌生成器和评估器

java - 用于转置 double[][] 矩阵的紧凑流表达式

java - Android 工具栏项目 OnClickListener

hadoop - Spark 正在洗牌大量数据

arrays - 将一个数组插入到链表中,其中元素的顺序是随机的

java - JSON Jersey JAXB