我正在尝试将for循环转换为功能代码.我需要向前看一个值,也可以看一个值.是否可以使用流?
以下代码将罗马文本转换为数值.
不确定如果使用两个/三个参数的reduce方法可以帮助这里.
以下代码将罗马文本转换为数值.
不确定如果使用两个/三个参数的reduce方法可以帮助这里.
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(); } } }