Я пытаюсь выполнить некоторые большие вычисления из списка чисел в .txt-файле. Мне нужно использовать longs, а именно буквальные longs, и поэтому мне нужно включать «L» или «l» в конце каждый раз, когда я беру новое значение из файла. int litterals оставляют меня с отрицательными ответами ... Я попытался добавить суффикс 'L' каждый раз, когда я читал файл, но Long.valueOf() генерирует исключение NumberFormatException. Как я могу объявить синтаксический анализ длинным буквальным?Разбор длинных литералов из файла ввода/переменной Java
import java.util.*;
import java.io.*;
public class Test{
public static void main(String[] args) throws FileNotFoundException{
File numFile = new File("numbers.txt");
Scanner in = new Scanner(numFile);
int total = 0;
Long tmp;
while(in.hasNextLine()){
tmp = Long.valueOf(in.nextLine().substring(0,12));
System.out.println(tmp);
total += tmp;
}
}
Я ценю помощь здесь, но вы все виды игнорируя мой вопрос ... Мой вопрос: Как я могу объявить анализироваться долго, как буквальное долго (учитывая, что я никогда не жесткий провод значение?). Приведенный выше пример не связан, он не требует отладки, это всего лишь краткая демонстрация того, что я пытаюсь сделать.
Вам не нужно добавлять ни одного L в любом месте. Это полезно только тогда, когда вы хотите иметь буквальное длинное значение * в коде *. используя 'Long.valueOf (" 1234 ")', вы получите 'Long'. –
Можете ли вы напечатать значение 'in.nextLine(). Substring (0,12)', что не удается? – Mureinik
Что такое пример полной строки? – Bohemian