スキャナがテキストファイル内のすべての単語をスキャンして、それぞれを特定の配列に保存する場所でこのコードを作成します。しかし、スキャナがスキャンを開始するたびに、次の行に到達し、最初の単語で停止します。私はこれを正確に引き起こしているのか分かりません。私はカンマの間で単語を区切るデリミタを使用しています "、"。ここでスキャナは第1行目と第2行目の最初の入力のみをスキャンします
は、コードの一部です:
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)
'nextLine()'を使ってファイルを1行ずつ読み込み、 '.split("、 ")'を使ってその行を解析します。また、JavaScriptとJavaは全く別の2つの独立した言語であり、あなたの質問はNetbeansとは関係ありません。 javascriptタグとnetbeansタグを削除します。 –
恐らく、テキストファイルの2行目の 'nextInt()'呼び出しから '2'という値が出力されたのですが、' nextInt() 'の呼び出しでは失敗してしまいました。しかし、 'nextInt()'によって返された値を出力した場合は、次の文になります。これは 'next()'の呼び出しであり、 'nextInt()'の呼び出しではありません。あなたはあなたが実行しているコードですか? – Andreas
エラーメッセージを読むと、エラーメッセージが表示されます。人々が回答するのを助けるために、あなたが入力データを提供しても助けになります。 – Peter