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

从Java文本文件中读取索引和字符串

阚小云
2023-03-14

假设我有一个文本文件,每行有一个数字代码和一个字符串标签:

0102 Apple Banana Code
0203 Pear Watch Time
0405 Java Computer Pen
0607 Car Bike Drive

我如何打印前面的非零数字和每行的前两个单词的总和?假设数字总是4位数,单词与数字之间用一个空格隔开。例如,我会得到:

3 Apple Banana 
5 Pear Watch 
9 Java Computer 
13 Car Bike 

我试图初始化这个,但我不知道从这里去哪里

FileReader fr = new FileReader(fileName);
BufferedReader inFile = new BufferedReader(fr);
String[][] words = new String[100][];
String line;
int size = 0;
while((line = inFile.readLine()) != null) {
    words[size++] = line.split(" ");
}
inFile.close();

共有1个答案

陶胤
2023-03-14

你很接近了。请参阅下面的代码。解释出现在代码之后。

import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class Tester {
    private static void handleLine(String line) {
        String[] parts = line.split(" ");
        int num = handleNumber(parts[0]);
        System.out.printf("%d %s %s%n", num, parts[1], parts[2]);
    }

    private static int handleNumber(String number) {
        char[] digits = number.toCharArray();
        int total = 0;
        for (char digit : digits) {
            total += digit - '0';
        }
        return total;
    }

    public static void main(String[] args) {
        Path path = Path.of("tragedy.txt");
        try (BufferedReader inFile = Files.newBufferedReader(path)) {
            String line = inFile.readLine();
            while (line != null) {
                handleLine(line);
                line = inFile.readLine();
            }
        }
        catch (IOException xIo) {
            xIo.printStackTrace();
        }
    }
}
  • 我使用类文件创建了一个BufferedReader,但它不是必需的。获取BufferedReader的代码是正确的
 类似资料:
  • 问题内容: 我需要在文本文件中读写数据,但是还无法弄清楚该怎么做。 我在Swift的iBook中找到了此示例代码,但我仍然不知道如何写入或读取数据。 问题答案: 为了进行读写,您应该使用可写的位置,例如documents目录。以下代码显示了如何读写简单的字符串。您可以在操场上进行测试。 雨燕3.x-5.x 斯威夫特2.2 斯威夫特1.x

  • 我正在寻找一种在读取字节(作为字节[])和从文件中读取字符串行之间切换的方法。我知道字节[]可以通过FileInputStream从文件中获取,字符串可以通过BufferedReader获取,但同时使用这两个字节是有问题的。我知道字节段有多长。当我写文件时,字符串编码可以保持不变。该文件类型是一个仍在开发中的自定义文件类型,因此我可以更改向其写入数据的方式。 我怎么能读取字符串和字节[]s从相同的

  • 问题内容: 我有一个很大的文本文件,但是没有换行符。它只包含一个很长的字符串(包含所有ASCII字符的1行巨大的字符串),但是到目前为止一切正常,因为我可以将整行读入Java的内存中,但是我想知道是否有内存由于文件变得如此之大(如5GB +),并且程序无法一次将整个文件读入内存,因此出现泄漏问题,那么在那种情况下,读取此类文件的最佳方法是什么?我们可以将巨大的线条分成2个部分,甚至多个块吗? 这是

  • 问题内容: 我们如何从文本文件读取数据并将其存储在String变量中? 是否有可能在方法中传递文件名,并且它将返回字符串,即文件中的文本。 我必须导入哪种工具?声明列表会很棒。 问题答案: 这些是必需的进口: 这是一种方法,通过将文件名作为参数传递给它,您可以从文件中进行读取,如下所示:

  • 我的项目中有这样一段代码: 没有错误,应用程序运行正常,但是变量中从来没有任何文本,我确信txt文件中有文本! 我已经尝试过不同的方法来读取文本文件(使用BufferedReader、Scanner、FileInputStream和FileReader),但都不起作用。 另外,我几乎可以肯定问题不在变量中,因为我尝试通过代码(使用运行时)打开文件,它正常打开了正确的文件。 好的,我尝试添加,但是仍