Исключение в потоке "main" java.util.NoSuchElementException в java.util.StringTokenizer.nextToken(неизвестный источник)
Я не знаю, почему он продолжает говорить об этой ошибке в заголовке. Мой вопрос "почему мой StringTokenizer не работает?" Хотя он работает при первом вводе "когда пользователь вводит X", но при "a[i] = Integer.parseInt(st.nextToken());" это не работает Функция программы состоит в том, чтобы объявить группу, в которой нет друзей, и эти друзья дают друг другу деньги, и в конце мы видим из 0, как каждый из них получил выгоду "+ знак результата" ДЕНЬГИ "" или если он проигрывает, т.е.: что он дает больше, чем получает, так что это "- знак результата" денег ""
package test2;
/*
ID: toti5821
TASK: gift1
LANG: JAVA
*/
import java.util.*;
import java.io.*;
import java.util.StringTokenizer;
public class test2 {
public static void main(String[]args) throws IOException{
BufferedReader f = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new FileWriter("gift1.out"));
Scanner scan = new Scanner(System.in);
StringTokenizer st = new StringTokenizer(f.readLine());
int x = Integer.parseInt(st.nextToken());
HashMap<String,Integer> nameandmoney = new HashMap<String, Integer>();
for(int i=0;i < x;i++){
String name = f.readLine();
nameandmoney.put(name, 0);
}
for(int i=0;i<=x;i++) {
String thisname = f.readLine();
int size = 2;
int[] a= new int[size];
for (int j = 0; j < size; j++) {
a[i] = Integer.parseInt(st.nextToken());
}
System.out.println(a[1]);
nameandmoney.put(thisname,nameandmoney.get(thisname) - a[0]);
int leftover =a[0]%a[1];
nameandmoney.put(thisname,nameandmoney.get(thisname) + leftover);
int gift1 = a[0]/a[1];
if(a[1]==0) {
gift1=0;
}
for(int k=0;k<a[1];k++) {
String reciever = f.readLine();
nameandmoney.put(reciever,nameandmoney.get(reciever) - gift1);
}
} for(String names: nameandmoney.keySet()) {
out.println(names+" "+nameandmoney.get(names));
} } }