Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要在一个文本文件中获取一个由三行组成的数组,并根据Java中的第一行对它们进行排序_Java_Arrays - Fatal编程技术网

我需要在一个文本文件中获取一个由三行组成的数组,并根据Java中的第一行对它们进行排序

我需要在一个文本文件中获取一个由三行组成的数组,并根据Java中的第一行对它们进行排序,java,arrays,Java,Arrays,我需要在一个文本文件中获取一个由三行组成的数组,并根据Java中的第一行对它们进行排序。我还需要处理这个,然后打印到屏幕上 我有一个测试文件,其格式如下: 10 Michael Jackson 12 Richard Woolsey String str; i = 0; j = 0; while ((str = in.readLine()) != null) { array[i][j] = str; j++; if (j

我需要在一个文本文件中获取一个由三行组成的数组,并根据Java中的第一行对它们进行排序。我还需要处理这个,然后打印到屏幕上

我有一个测试文件,其格式如下:

10
Michael
Jackson
12
Richard
Woolsey
  String str; 
  i = 0;
  j = 0;
  while ((str = in.readLine()) != null) { 
         array[i][j] = str;
         j++;
         if (j == 3){
            j = 0;
            i++;
         }
  } 
  in.close();
我需要从一个文本文件中输入这个,然后根据与名称相关联的数字重新排列它。此时,我需要使用一个随机数生成器,并根据随机数为每个名称分配一个变量。然后我需要以不同的格式打印以筛选我添加的变量和名称。以下是一个输出示例:

12:
Woolsey, Richard
Variable assigned
10:
Jackson, Michael
Other variable assigned
我非常感谢你的帮助。我这样问是因为我真的不知道如何将三行作为一个变量输入,然后在程序中进行操作。 谢谢
科里我不太明白你的问题。除了排序,下面类似的东西可能会有所帮助。请注意,这是一个不完整的解决方案,其中没有存储输入,输出只是打印一次(然后丢弃)

请注意,这不会进行任何排序。看一看那部分的a。您还可以使用
java.util.Scanner
从命令行读取输入(如果它不在文件中)。

  • 用于从输入中读取行
  • 用于生成随机数
  • 定义一个
    条目
    类来封装每个条目的数据
  • 使用和
    • 或者声明并使用
此代码段应具有指导意义:

import java.util.*;
import java.io.*;

public class Entry implements Comparable<Entry> {
    final int id;
    final int whatever;
    final String firstName;
    final String lastName;

    Entry(int id , String firstName, String lastName, int whatever) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.whatever = whatever;
    }
    @Override public String toString() {
        return String.format(
                "%d:%n%s, %s%n(%d)%n",
                id, lastName, firstName, whatever);
    }
    @Override public int compareTo(Entry other) {
        return
            (this.id < other.id) ? +1 :
            (this.id > other.id) ? -1 :
            0;
    }
}
如果
sample.txt
包含以下内容:

10
Michael
Jackson
12
Richard
Woolsey
然后,输出可以是:

12:
Woolsey, Richard
(-1279824163)

10:
Jackson, Michael
(320574093)
另见
    • 一个合适的不可变值类型需要同时覆盖这两个值

    • 我看到了你的帖子,我想给你一个快速的答复

      查看此链接:

      您还应该阅读Java教程

      获取每一行后,您可以使用以下内容保存到二维数组中:

      10
      Michael
      Jackson
      12
      Richard
      Woolsey
      
        String str; 
        i = 0;
        j = 0;
        while ((str = in.readLine()) != null) { 
               array[i][j] = str;
               j++;
               if (j == 3){
                  j = 0;
                  i++;
               }
        } 
        in.close();
      
      然后,您可以任意使用数组值

      祝你好运。

      我问了一个类似的问题


      Scanner+Matcher与适当的正则表达式的组合在提取格式化数据方面非常有效。

      如果这是一项作业,则应标记为“家庭作业”。我很抱歉。我刚从我的朋友那里被推荐到这个网站。谢谢你的提醒。总的来说,Roseindia会引入一些坏习惯,尤其是在美国。我真的不会把它作为一个权威的来源。