Я пытаюсь написать код, который принимает файл в качестве входных данных и выводит файл с пробелами после каждого целого числа, если его нет.
Пример:
Input file contains: 3 0001
Output file should be: 3 0 0 0 1
Проблема в том, что 0001 определяется как 1, и я получаю вывод как
3 1
Ниже приведен первый код, который я пробовал
Scanner scanner = new Scanner(new File(inputPath));
ArrayList<Integer> integerArrayList = new ArrayList<Integer>();
while (scanner.hasNextInt()) integerArrayList.add(scanner.nextInt());
System.out.println(integerArrayList.toString());
scanner.close();
Выход - [3, 1]
Пробовал читать как персонаж
FileInputStream fin = new FileInputStream(new File(inputPath));
ArrayList<Integer> integerArrayList = new ArrayList<Integer>();
while (fin.available() > 0) integerArrayList.add(Integer.valueOf(fin.read()));
System.out.println(integerArrayList.toString());
fin.close();
Теперь выход - [51, 32, 48, 48, 48, 49]
Integer
. ДляInteger
все ведущие нули будут отброшены. Например,000001
,0000000000001
и1
будут обрабатываться как1
(посколькуInteger
на самом деле просто простое целое число). Вместо этого попробуйте использоватьString
(который на самом деле хранит последовательностьchar
). - person tonychow0929   schedule 11.04.2015