Предполагая, что вы хотите разобрать двойные значения из строки.
Вот фрагмент кода, который должен делать то, что вам требуется:
private static <S, T> void distributeValues(S[] sourceParts, Function<S, T> transformFunction, List<T> ... targetParts) {
for (int i = 0; i < sourceParts.length; i++) {
S part = sourceParts[i];
targetParts[i].add(transformFunction.apply(part));
}
}
Вызов этого метода может выглядеть следующим образом:
distributeValues(line.split(";"),
s -> Double.valueOf(s.replace(",", ".")),
part1, part2, part3, part4);
Таким образом, вы можете выбрать, в котором перечислены вы хотите заполнить. Вы можете даже указать part1, part2, part1, part2
, если вам требуется что-то подобное.
Образец Основной метод:
public static void main(String[] args) {
String line = "10,23;190,33;86,423;132,45";
List<Double> part1 = new ArrayList<>();
List<Double> part2 = new ArrayList<>();
List<Double> part3 = new ArrayList<>();
List<Double> part4 = new ArrayList<>();
distributeValues(line.split(";"), s -> Double.valueOf(s.replace(",", ".")), part1, part2, part3, part4);
System.out.println("part1 = " + part1);
System.out.println("part2 = " + part2);
System.out.println("part3 = " + part3);
System.out.println("part4 = " + part4);
}
который печатает:
part1 = [10.23]
part2 = [190.33]
part3 = [86.423]
part4 = [132.45]
Почему бы не использовать 'String [] Рез = line.split (";");'? Не уверен, что вам нужно в конце концов. –
Вам действительно нужно больше одного ArrayList? –
Я хочу сказать: 'ArrayList part1.add (" 10,23 ");' не может передать мой компилятор глаз ... Я знаю, что вы делаете примеры, однако ... синтаксис настолько неправильный, что так ошибается ..... –
Kent