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 - 使用 Java SDK 以编程方式编译包含多个类的 java 源文件

java - 如何绘制具有颜色渐变和不同不透明度的形状?

java - 使用 RegEx 在最后一个点之后查找字符串并删除以大写字母开头的最后一个单词

java - 为什么代码片段无法检测到行尾

Java:将整数数组复制到字符串数组中

delphi - Delphi中如何泄漏字符串

java - RecyclerView 重新计算 WRAP_CONTENT

java - 手动添加 IndexOutOfBounds 异常

java - 显示文本文档每一行的某些指定值

javascript - 某些函数中的 JS/JQuery 全局数组错误