У меня возникли проблемы с тем, чтобы StringTokenizer разбил несколько строк текста на отдельные токены. Введенный текст
3
monkeys
Но StringTokenizer, по-видимому, интерпретирует это как «3monkeys». Мне нужно, чтобы это было "3" и "обезьяны". Из-за этого генерируется исключение NumberFormatException, так как мне нужно преобразовать строку «3» в целое число.
Это код, который у меня есть до сих пор.
Scanner f = new Scanner( new FileInputStream("input.txt" )); // Yes, i have the actual input file path here, but I changed it for this question.
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("output.txt")));
String temp = "";
//String cString = "";
while( f.hasNextLine() ) {
String cString = f.nextLine();
temp += cString;
}
StringTokenizer everythingTokens = new StringTokenizer( temp );
String[] everything = new String[ everythingTokens.countTokens() ];
for( int i = 0; i < everything.length; i++ ) {
everything[ i ] = everythingTokens.nextToken();
}
int numberOfPeople = Integer.parseInt( everything[ 0 ] ); // Line where exception occurs.
out.println( everything[ 0 ] );
Сообщение об ошибке это
Exception in thread "main" java.lang.NumberFormatException: For input string: "3monkeys"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at gift1.main(gift1.java:32)
Java Result: 1
Почему это происходит и как я могу это исправить?