是否可以在流中获取下一个元素?
2022-09-01 18:48:01
我正在尝试将一个转换为功能代码。我需要展望一个值,也要看一个值的背后。是否可以使用流?下面的代码是将罗马文本转换为数值。不确定具有两个/三个参数的 reduce 方法是否能在这里提供帮助。for loop
int previousCharValue = 0;
int total = 0;
for (int i = 0; i < input.length(); i++) {
char current = input.charAt(i);
RomanNumeral romanNum = RomanNumeral.valueOf(Character.toString(current));
if (previousCharValue > 0) {
total += (romanNum.getNumericValue() - previousCharValue);
previousCharValue = 0;
} else {
if (i < input.length() - 1) {
char next = input.charAt(i + 1);
RomanNumeral nextNum = RomanNumeral.valueOf(Character.toString(next));
if (romanNum.getNumericValue() < nextNum.getNumericValue()) {
previousCharValue = romanNum.getNumericValue();
}
}
if (previousCharValue == 0) {
total += romanNum.getNumericValue();
}
}
}