Java 在字符串中对字符进行分组的更简洁的方法
我正在用Java练习罗马数字加法。根据消除减法符号、组合、然后分组为更高值的等价物的规则,“IV”+“IV”看起来是这样的:Java 在字符串中对字符进行分组的更简洁的方法,java,roman-numerals,Java,Roman Numerals,我正在用Java练习罗马数字加法。根据消除减法符号、组合、然后分组为更高值的等价物的规则,“IV”+“IV”看起来是这样的: “四”+“四” “IIII”+“IIII” “IIIIII” “VIII”(将5 I的“IIIII”转换为“V”) 我用下面的代码把8个I分为“IIIII”和“III”。然后,我可以使用映射将“iiii”转换为“V”(未显示)。下面的分组代码是否可以使用Stream方法编写 private String[] group(String sortedRawSum)
映射将“iiii”转换为“V”(未显示)。下面的分组代码是否可以使用Stream
方法编写
private String[] group(String sortedRawSum) {
List<String> groupedChars = new ArrayList<>();
int i=0;
while (i+5 < sortedRawSum.length()) {
if ( sortedRawSum.substring(i, i+5).equals("IIIII") ) {
groupedChars.add("IIIII");
i += 5;
continue;
}
i++;
}
if (i < sortedRawSum.length()) {
groupedChars.add(sortedRawSum.substring(i));
}
return groupedChars.toArray(new String[0]);
}
私有字符串[]组(字符串和){
List groupedChars=new ArrayList();
int i=0;
而(i+5
是否可以保证sortedRawSum
-参数只包含I
s?如果我能计算出唯一的I
s,我想我可以调整它使其更通用?