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

Java创建一个方法来读取和洗牌现有数组的元素,java,arrays,shuffle,Java,Arrays,Shuffle,我一直在仔细研究这些链接: 但是他们在帮助我的同时也让我困惑 我很确定我想用电话 public static void shuffle `(String[] array)` // mix-up the array 但我不确定台词是什么 (String[] array) 我们正在引用 我希望有一个方法可以读取数组(需要先读取它,这样它才知道正确地洗牌什么??),洗牌它,然后保存新的文本文件;或者读取数组并从列表中随机抽取一个数组 我对如何将ArrayList与字符串一起使用感到困惑 如何告诉

我一直在仔细研究这些链接:

但是他们在帮助我的同时也让我困惑

我很确定我想用电话

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

希望这是一个很好的开始,您可以继续使用您的逻辑…

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

List<String> result;
try (Stream<String> stream = Files.lines(Paths.get("WildPkmn.txt"))) {
     result = stream.collect(toList());
} catch (IOException e) { e.printStackTrace(); }

希望这对你继续你的逻辑来说是一个好的开始…

我不明白你为什么不简单地利用
List
和Collection的
shuffle
方法。玩下面的游戏

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

class Test {
    public static final String file = "WildPkmn.txt";

    public static void main(String[] args) {
        List<String> list = null;
        try {
            list = readFromFile(file);
        } catch (IOException | NullPointerException e) {
            e.printStackTrace();
        }

        System.out.println(list);
        Collections.shuffle(list);
        System.out.println(list);

    }

    public static List<String> readFromFile(String fileName) throws IOException {
        Stream<String> stream = Files.lines(Paths.get(fileName));
        return stream.collect(Collectors.toList());
    }
}

我不明白你为什么不简单地利用
List
和Collection的
shuffle
方法。玩下面的游戏

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

class Test {
    public static final String file = "WildPkmn.txt";

    public static void main(String[] args) {
        List<String> list = null;
        try {
            list = readFromFile(file);
        } catch (IOException | NullPointerException e) {
            e.printStackTrace();
        }

        System.out.println(list);
        Collections.shuffle(list);
        System.out.println(list);

    }

    public static List<String> readFromFile(String fileName) throws IOException {
        Stream<String> stream = Files.lines(Paths.get(fileName));
        return stream.collect(Collectors.toList());
    }
}

我建议使用Collections.shuffle而不是重新发明你自己的。我建议使用Collections.shuffle而不是重新发明你自己的。
String[] tokens = ...;
Collections.shuffle(Arrays.asList(tokens));