Итак, вот в чем дело, у меня есть этот код:Java String.split() - NumberFormatException
public static void main(String[] args) {
try {
FileInputStream fstream = new FileInputStream("test.txt");
// Use DataInputStream to read binary NOT text.
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine = br.readLine();
String[] split = strLine.split(" ");
System.out.println(Integer.parseInt(split[0]));
in.close();
}
catch (Exception e) {//Catch exception if any
System.err.println("Error: " + e);
}
}
Допустим, у меня есть файл с именем test.txt , только с " ". Таким образом, он считывает первую строку и разбивает эту строку на две строки. Проблема заключается в том, что можно использовать Integer.parseInt для разделения [1], но не может использовать этот метод для split[0]
(System.out.println(split[0])
печатает «»), который выдает мне ошибку:
Error: java.lang.NumberFormatException: For input string: "6"
UPDATE: Это может быть проблема затмения, потому что если я составляю мои .java файлы в терминале с JAVAC, я не получаю никаких исключений :))
UPDATE2: решена. что-то пошло не так, как с Кейт. Не знаю, что, но gedit работает лучше: D Спасибо всем.
Вы уверены, что у вас нет невидимых символов, как BOM, который может быть первым символом? Распечатайте размер строки. –
ИСТИНА. Длина раскола [0] равна 2, поэтому почему она печатает только «6»? как удалить скрытые символы? – trimpirim
Это, вероятно, спецификация. Откройте файл в хорошем текстовом редакторе (Not Notepad) и настройте его, чтобы сохранить файл без спецификации. –