Я предполагаю, что вы просите пользователя ввести последовательность чисел в одной строке. Таким образом, вы можете получить 1 , 2 3 , 52
в качестве введенного значения в виде строки. Вы хотите сохранить числа в массив int
. Способ сделать это - взять строку и удалить все символы, которые не имеют ничего общего с числами, в этом случае это пробелы и комма. Будет проблема, если кто-то войдет в a 1 , 4 59
, но я игнорирую этот сценарий, потому что это не имеет никакого отношения к вопросу.
String line = scanner.nextLine(); // line = "1 , 2 3 , 45"
Удалите Komma первый:
String result = line.replaceAll("," , " "); // replaces all komma's with a space.
Теперь у вас есть строка без Komma-х Чтобы избежать двойных чисел цифры не должны быть преобразованы в 2 однозначных цифр, вы можете использовать StringTokenizer
.
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
печатает:
это
является
тест
Мы можем использовать это, чтобы удалить пробельные между числами в нашей строке или на самом деле используйте только значения, которые читаются как токены.
StringTokenizer resultLine = new StringTokenizer(result);
int[] numbers = new int[resultLine.countTokens()];
for (int i = 0; resultLine.hasMoreTokens(); i++) {
numbers[i] = Integer.parseInt((String) resultLine.nextElement());
}
for (int j = 0; j < numbers.length; j++) {
System.out.print(numbers[j] + " ");
}
System.out.println();
}
Что, наконец, дает нам желаемый результат, массив целых чисел.
Scanner s = new Scanner(System.in);
while (s.hasNext()) {
String line = s.nextLine();
String result = line.replaceAll(",", " ");
StringTokenizer resultLine = new StringTokenizer(result);
int[] numbers = new int[resultLine.countTokens()];
for (int i = 0; resultLine.hasMoreTokens(); i++) {
numbers[i] = Integer.parseInt((String) resultLine.nextElement());
}
for (int j = 0; j < numbers.length; j++) {
System.out.print(numbers[j] + " ");
}
System.out.println();
}
Input был: 1, 2 3, 52
Выход: 1 2 3 52 // int[] numbers = {1,2,3,52};
Я надеюсь, что это какой-то полезным для вас.
Просьба поделиться всем своим кодом. Как вы вывести целые числа? – MinecraftShamrock
И каков диапазон ваших 'i'? – RealSkeptic
Держу пари, что есть строка выше, которая говорит 'for (int i = 1; i <5; i ++)'. – aioobe