Java 在字符串中对字符进行分组的更简洁的方法

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)

我正在用Java练习罗马数字加法。根据消除减法符号、组合、然后分组为更高值的等价物的规则,“IV”+“IV”看起来是这样的:

  • “四”+“四”
  • “IIII”+“IIII”
  • “IIIIII”
  • “VIII”(将5 I的“IIIII”转换为“V”)
  • 我用下面的代码把8个I分为“IIIII”和“III”。然后,我可以使用
    映射将“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,我想我可以调整它使其更通用?