假設您想要解析字符串中的double值。
下面的代碼片段,它應該做你需要什麼:
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]
爲什麼不使用'字符串[]解析度= line.split( 「;」);'?不知道你最終需要得到什麼。 –
你真的需要多個ArrayList嗎? –
我想說的是:'ArrayList part1.add(「10,23」);'不能通過我的眼睛編譯器...我知道你在做例子,但是......語法錯誤,類型是錯誤的..... –
Kent