java - 扫描仪扫描第一行,仅扫描第二行的第一个输入

标签 java

我正在创建这段代码,其中扫描仪应该扫描文本文件中的每个单词,然后继续将每个单词保存在特定的数组中。但每次扫描仪开始扫描时,它只会到达下一行并在第一个单词处停止。我不知道到底是什么原因造成的。我使用分隔符来分隔逗号“,”之间的单词。

这是一段代码:

package ex13a;
import java.util.Scanner;
import java.io.*;
/**
 *
 * @author Work
 */
public class Ex13a {
static Scanner scan = new Scanner(System.in);
static int[] number = new int[100];
static String[] f_users = new String[100];
static String[] l_users = new String[100];
static String[] passwd = new String[100];
static int i = 0;
static String fullName;

/**
 * @param args the command line arguments
 * @throws java.io.IOException
 */
public static void main(String[] args) throws IOException {
String path = "C:\\Users\\Work\\Desktop\\users.txt";
File inFile = new File(path);
Scanner inPut = new Scanner(inFile).useDelimiter(",");
Scanner inPut2 = new Scanner(inFile);
while(inPut.hasNext()){
    System.out.println(number[i] = inPut.nextInt());
    System.out.println(f_users[i] = inPut.next());
    System.out.println(l_users[i] = inPut.next());
    System.out.println(passwd[i] = inPut.next());

    i++;

}

它向我抛出了错误:

1
Ahmed
Dhaif
asdf56
Exception in thread "main" java.util.InputMismatchException
2
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at ex13a.Ex13a.main(Ex13a.java:32)
C:\Users\Work\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53:     Java returned: 1
BUILD FAILED (total time: 0 seconds)

最佳答案

逐行抓取,然后将逗号周围的行分割,然后解析返回的字符串。

Scanner inPut = new Scanner(inFile);
while(inPut.hasNextLine()){
    String [] data = inPut.nextLine().split(",");
    System.out.println(Integer.parseInt(data[0]));
    number[i] = Integer.parseInt(data[0]); //to add to your arrays
    System.out.println(Integer.parseInt(data[1]));
    System.out.println(Integer.parseInt(data[2]));
    System.out.println(Integer.parseInt(data[3]));
    i++;
}

请注意,您应该检查数组的大小是否正确,并且字符串实际上是整数。你应该能够做到这一点。但这应该可以帮助您入门。

如果要将值存储在数据结构中,请使用动态的数据结构,而不是像数组这样的固定长度的数据结构。

关于java - 扫描仪扫描第一行,仅扫描第二行的第一个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44447023/

相关文章:

java - Spring-data-jpa:批量插入不起作用

java - Jetty mysql 连接池配置错误 : javax. naming.NameNotFoundException;剩余名称'env/jdbc/---(mysql 5.0+jetty 7.0.1)

java - 在java代码中的myBatis配置中添加xml映射器,路径与接口(interface)不同

java - Bitronix + Spring + Hibernate + Mysql 启动时卡住

java - Hibernate PreInsertEventListener 修改的字段在 Spring Boot 存储库 POST 响应 JSON 中显示为 null

java - 如何使用 Spring MVC 3 从 Controller 中的模型中获取对象?

java - 一个接口(interface)多种实现。如何在运行时获得正确的

java - 用于解析 markdown 的 Commonmarks 库 : how to parse three ticks

java - TeamCity:此处不允许使用脚本元素 jsp:declaration、jsp:expression、jsp:scriptlet

java - 特定实例/非单例