Java:从另一个数组创建数组

标签 java arrays split

我有一些用于问题游戏的 .txt 文件,我将它们分成几个部分。查看这些部分,当用户转到下一页问题时,我会阅读 txt 中的下一行。问题是我想将每一行的一部分存储到一个数组中。例如,如果有 30 行,我需要使用这些部分创建另一个包含 30 个参数的数组,以便稍后与玩家回答的问题数组进行比较。

也许它不是很清楚,所以这是代码。

我阅读了文件:

try {
        InputStream is = context.getAssets().open(questionFile);
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        // Skips lines
        for (i = 0; i< questionNumber; i++) {
            reader.readLine();

        }
        question = reader.readLine();

用户转到下一个问题:

public void Next(){
    questionNumber=questionNumber + 1;
}

读取行的部分以及我想要创建行数的Array的部分:

public String getCorrecta() {
    String[] parts = question.split("\\;");
    String correcta = parts[8];
    return correcta;
}

如果有包含以下示例的 txt,则恢复:

1;1; ; ; ; ; ; ;C
2;2; ; ; ; ; ; ;B
3;3; ; ; ; ; ; ;A
4;4; ; ; ; ; ; ;D

我需要一个像这样的数组:

public String [] Example = {"C","B","A","D"}

最佳答案

这里是代码(假设索引 8(从零开始)是预先知道的。但是,如果您想读取文件并将所有列放入单独的数组中(首选集合而不是数组),您应该在一次完成,不要多次读取该文件。需要更好地了解您的用例。

      public static final String COLUMN_SEPARATOR = ";";
      String[] stringsAtIndexN(int index, String inputFile)
        throws IOException {
        List<String> list = new ArrayList<String>();
        BufferedReader br = new BufferedReader(new FileReader(inputFile));
        String str;
        while ((str = br.readLine()) !=null) {
          list.add(str.split(COLUMN_SEPARATOR)[index]);
        }
        return list.toArray(new String[list.size()]);
      }

关于Java:从另一个数组创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840028/

相关文章:

string - 在 PowerShell 中拆分字符串

java - Java 中的有界类型

java - 如何在用户单击 Java Swing 应用程序上的“关闭”时启动弹出窗口

javascript - array.length 与 array.length > 0

c - 声明数组时出现错误 : Constant expression required,,例如 a[n]

Java split() 正则表达式

Java:Eclipse 控制台不显示 Spring Controller 信息

java - 使用ArrayList存储扩展线程的类

javascript - 在数组数组中查找重复项并处理它们

Java String.split() 在逗号后跟非空白