当前位置: 首页 > 知识库问答 >
问题:

如何将文本文件中的字段存储到列表或映射中,然后与Java中其他文本文件中的字段进行比较?

娄阳舒
2023-03-14
Text file1
2348384#Test 123####3983#Data 22 .... 

etc此文件1有许多字段,这些字段由“#”字符分隔,文件中有许多行。

Text file  2
23,809,Test 88, Dat 33

文件2有用逗号分隔的字段,它有许多行。

我需要比较文件中的字段是否与文件2中的匹配。这两个文件中有许多字段是相同的,所以我需要编写代码来匹配这两个字段是否相同?

我是否应该将文件1中的所有字段存储到字符串[]

假设我想比较第4行,第9栏,字符串[3]

或者我应该将个人字段存储在字符串变量中。。

如何在java中比较两个文本文件中的字段?我应该将文件中的所有行存储在列表或HashMap中吗?

谢谢

共有1个答案

万俟丁雷
2023-03-14

你的意思是这样的吗?抱歉如果这是混乱的代码

public final static void main(final String[] args) {
    // file1 content:
    // a###b###c#d
    // e###f###g#h
    List<String> list1 = getListFromFile(new File("\\file1.txt"));

    // file2 content:
    // a,b,c,d
    // e,f,g,h
    final List<String> list2 = getListFromFile(new File("\\file2.txt"));

    list1 = format(list1);

    if (get(list1, 2, 3).equals(get(list2, 2, 4))) {
        System.out.println("Equal!");
    } else {
        System.out.println("Not Equal!");
    }

}


final static String get(final List<String> list, final int row, final int field) {

    final String[] strs = list.get(row - 1).split(",");

    /*
     * Handle IndexOutOfBoundsException
     */

    return strs[field - 1].trim();
}

final static List<String> format(final List<String> list1) {
    final List<String> newList = new ArrayList<>();

    for (int i = 0; i < list1.size(); i++) {
        newList.add(list1.get(i).replaceAll("[#]+", ","));
    }

    return newList;
}

final static List<String> getListFromFile(final File file) {
    List<String> listOfFile = new ArrayList<>();
    try (final BufferedReader reader = new BufferedReader(new FileReader(file))) {

        String line;
        while ((line = reader.readLine()) != null) {
            listOfFile.add(line);
        }

        return listOfFile;
    } catch (final IOException e) {
        /*
         * Catch it
         */
    }
    return null;
}
 类似资料:
  • 我试图在我的文本字段中有一些预定义的文本,但是我不知道如何在单词之间添加新行。我试过了\n,但不起作用。 代码: 有人知道如何在每个单词之间添加换行符吗?我希望单词之间有一个分离,然后它会在稍后自动填充信息。

  • 问题内容: 有没有一种方法可以将文本字段限制为仅允许数字0-100,从而排除字母,符号等?我已经找到了一种方法,但是它比看起来必要的方法复杂得多。 问题答案: 如果必须使用文本字段,则应将JFormattedTextField与NumberFormatter一起使用。您可以设置NumberFormatter上允许的最小值和最大值。 但是,Johannes建议使用JSpinner(如果适合您的用例)

  • 问题内容: 在MySql的解释器中,很容易将表及其字段名称转储到屏幕上。 似乎有没有简单的方法表导出到制表delimted或CSV OUTFILE 包括 其列标题。 我试图仅使用SQL或Linux命令行来执行此操作,而不用另一种语言编写程序。 谢谢 问题答案: 将查询传递到命令行客户端会输出一个制表符分隔的列表,其中列名作为第一行

  • 问题内容: 我有一个文件,其内容为python列表的形式,如下所示: 有什么办法可以将python文件读回到列表对象中吗?而不是使用整个文件,而是将其读取为字符串。 编辑:对于那些可能有兴趣的人,我使用(import ast)遇到了一个奇怪的问题,作为解决上述问题的建议。 我在其中使用的程序具有从yahoo finance python模块获取历史股票数据的功能。此函数与ast.literal_e

  • 问题内容: 有什么方法可以读取文本文件并将内容存储在Jtable中?我有一个文本文件,其中包含有关某些过程的某些信息。就像一个具有列和各自值的表。是否可以获取.txt文件的内容并以Jtable的形式显示?我正在使用Eclipse和Window Builder。任何帮助将不胜感激。谢谢! 问题答案: 我将研究Oracle的教程: 读/写文本文件 JTable教程 当从文本文件中获取数据时,您需要将其

  • 头衔。 int->.txt文件 C#。 是我试过的代码,但它抛出了一个错误