【问题标题】:When to use String and when char array in Java?在 Java 中何时使用 String 以及何时使用 char 数组?
【发布时间】:2015-09-15 19:11:59
【问题描述】:

我应该读取每行包含一个字符串的大文件。在 Java 中解析这种文件的最佳方法是什么?

目前我正在使用BufferedReader进行这样的解析:

public static List<String> readFile(String filename) {

    List<String> input = new ArrayList<>();
    BufferedReader br = null;

    try {
        String sCurrentLine;
        br = new BufferedReader(new FileReader(filename));

        while ((sCurrentLine = br.readLine()) != null) {
            input.add(sCurrentLine);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (br != null) br.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    return input;
}

所以我的问题是,哪种方法更好:像String 数组或char 数组一样保存?

换句话说,String 对象太多还是char 数组太多更好?

编辑: 我需要检查每行中的字符串是否为回文。

【问题讨论】:

  • 读取文件的目的是什么?
  • "String 对象太多还是 char 数组更好" 定义 更好
  • 哪个更好?这完全取决于您要实现的目标
  • 旁注:假设您至少使用 Java 7,我会使用 try-with-resources 创建您的 BufferedReader
  • 读取字符串的代码当然更干净。例如List&lt;String&gt; lines = Files.readAllLines(file, Charset.defaultCharset());。除非您想将数据用作字符,否则我会使用字符串。但是,如果不了解更多有关您需要文件内容的内容,就不可能给出明确的答案。

标签: java arrays bufferedreader


【解决方案1】:

在上述情况下,您可以使用其中任何一种。如果要进一步更改内容,则必须使用 char 数组,因为 String 在 Java 中本质上是不可变的。

【讨论】:

    猜你喜欢
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2012-06-07
    • 2011-10-10
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多