当我使用Java中的Scanner Class读取.txt文件时,如何仅读取字符串或整数?

EnesÇalışkan:

大家好,这是我的第一个问题,如果我有任何错误或毛病,对此我感到抱歉。

因此,我正在做我当前一直无法解决的一件事,即如标题中所述,仅从.txt文件中读取字符串和整数。这是我的代码:

 File file = new File("C:\\Users\\Enes\\Desktop\\test.txt");
    Scanner scn = new Scanner(file);
    String[] s = new String[10];
    int i = 0;
    int[] fruits = new int[10];

    while (scn.hasNextInt()) {

        fruits[i++] = scn.nextInt();

    }while (scn.hasNext()) {

        s[i++] = scn.next();

    }

    for (int elm : fruits) {
        System.out.print(elm + "\t");
        System.out.println("\n");
    }
    for (String ele : s) {
        System.out.print(ele + "\t");
    }

这是在.txt文件上写的内容

Apple 5
Pear 3

输出就像:

0   0   0   0   0   0   0   0   0   0   
Apple   5   Pear    3   null    null    null    null    null    null

所以我想得到Apple和Pear,这是不同数组中的字符串,而5和3是不同数组中的整数。我怎样才能做到这一点?任何帮助将不胜感激。谢谢大家!

corsiKa:

首先,我将您的变量重命名为有用的东西:

String[] names = new String[10];
int[] counts = new int[10];

现在,您尝试获取所有10个数字,然后获取所有10个名称。但这不是您的数据的布局方式。

我将使用扫描仪抓住线,并从那里分割线:

Scanner sc = new Scanner(new File(file));
int index = 0;
while(sc.hasNextLine()) {
    String line = sc.nextLine();
    String[] tokens = line.split(" ");
    names[index] = tokens[0];
    counts[index] = Integer.parseInt(tokens[1]);
    index++;
}

对于输出,我们同时迭代两个循环:

for(int i = 0; i < 10; i++) {
    System.out.println(names[i] + "\t" + counts[i]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何有效地从大txt文件中仅读取字符串

如何从整数之前的文件中读取字符串

从文件中读取字符串和整数

从文件中读取字符串和整数列

从原始txt文件中读取字符串

如何从文件中读取字符串数组?

从文件中读取字符串

从 Python 中的 csv 文件读取字符串时如何避免双重转义(\\)?

如何仅将整数从文件读取到也包含字符串的c ++程序中?

使用java.util.Scanner从文件中读取字符串并使用换行符作为分隔符时,字符串的行为异常

从文件中读取字符串时查找字符串中的上标

如何使用c字符串读取.txt文件?

从txt文件中读取字符串,然后在c ++中的第一行停止

从C中的文件读取字符串和整数的组合

使用GoLang从文件读取字符串,整数和双精度

Pygame从.txt文件中读取字符串,然后用作颜色错误

(Perl)从文件中读取字符串时,是否可以使用插值变量?

如何在java中读取字符串部分

从 Rust 中的文件中读取字符串数组

在C中读取字符串时scanf的行为

从c中的文件读取字符串

PHP 从字符串或文件中读取字节范围

从文件中读取字符串的特定区域

目标C:从CSV文件中读取字符串

从 app.config 文件中读取字符串

从文本文件中读取字符串

从C中的名称文件读取字符串时遇到问题

从C中的二进制文件读取字符串时发生访问冲突

从文件读取时如何跳过字符串中的空格