java - 如何读取以逗号分隔的名称列表 Java

标签 java arrays string file sorting

所以我有一个任务,从文本文件中读取动物的常用名和学名,用逗号分隔。 (即狗、犬狼疮)。首先按通用名称的字母顺序对它们进行排序并打印到控制台,然后按科学名称的字母顺序对它们进行排序并打印到控制台。我在读取文件并将它们放入数组中的类时遇到问题。抱歉,如果这段代码严重错误,我仍在学习。这是给我带来问题的代码:

String[] commonname = new String[25];
String[] scienname = new String[25];
    public static String readNames(String[] commonname, scienname) throws IOException { 
         BufferedReader inputStream = null;
                try {
             inputStream = new BufferedReader(new FileReader("/C:/Desktop/animals.txt"));
          String line = null;
          while ((line = inputStream.readLine()) != null) {
              Scanner sc = new Scanner(line);
              sc.useDelimiter(",");
              String common = sc.next();
              String scient = sc.next();
              String list = new String(common, scient);
          }
                }
         finally {
                    if (inputStream != null) {
                        inputStream.close();
                    }
                }
            }
        }
        }

我收到 2 个错误,

"
File: C:\Users\Nathan\Desktop\Program5.java  [line: 16]
Error: Syntax error on token "(", ; expected
File: C:\Users\Nathan\Desktop\Program5.java  [line: 16]
Error: Syntax error, insert ";" to complete LocalVariableDeclarationStatement
" 

我已经在它要求的行中给出了 ( ,据我所知,不应该需要 ; 。 它非常不完整,我很乐意帮助您将名称读入具有通用名称和科学名称的字符串,但可以按字母顺序排序 或 如果有意义的话。 如果有任何启发的话,这是完整的代码:

/**
 * Auto Generated Java Class.
 */
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;

import java.util.Scanner;
public class Program5 {
String[] commonname = new String[25];
String[] scienname = new String[25];

  public static void main(String[] args) throws IOException {
  String list = readNames;
  Arrays.sort(list);
  for(int i = 0; i < list.length; i++)
    System.out.println(list[i]);


public static String readNames(String[] commonname, String[] scienname) throws IOException { 
 BufferedReader inputStream = null;
        try {
     inputStream = new BufferedReader(new FileReader("/C:/users/Nathan/Desktop/animals.txt"));
  String line = null;
  String[] list = new String[25];
  while ((line = inputStream.readLine()) != null) {
      Scanner sc = new Scanner(line);
      sc.useDelimiter(",");
      String common = sc.next();
      String scient = sc.next();
      String list = new String(common, scient);
  }
        }
 finally {
            if (inputStream != null) {
                inputStream.close();
            }
        }
    }
}

}

最佳答案

行读取和解析看起来不错,但您没有存储 list任何地方。在您的while之前循环,为你的对声明一个容器。您可以使用Array ,但由于它们必须按字母顺序排序,您不妨将它们放入 TreeSet<(String,String)> 中。 ,这将为您排序。要打印排序列表,请调用集合的 iterator()方法循环遍历其值。

关于java - 如何读取以逗号分隔的名称列表 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173280/

相关文章:

java - 我可以从父类(super class)对象数组中获取子类变量吗?

java - 大型小对象数组的初始化缓慢

javascript - 静态 JSON 数组从 API 推送到结果

c++ - 删除字符串 vector 中前 2 个字符的重复项

c++ - char*与char[]的区别(二)

java - 如何将spannablestring添加到android中的列表中?

java - 解密java时出错

java - 从 HashMap 中获取前 k 个值

java - 无法通过本地计算机上的 Java 代码连接到谷歌计算引擎上的 mongodb 服务器

java - '+=' 和 '++' 运算符层次结构的组织?