У меня есть строковое множество, «5X3I3M3X»Java отдельная строка из одной строки
Я хочу, чтобы отделить 5й = 1X1X1X1X1X, зависит от числа перед символом «X»
И в конце концов это может быть 1X1X1X1X1X3I3M1X1X1X
Я сделал это, как показано ниже,
String str = "5X3I3M3X";
StringBuffer sBuffer = new StringBuffer("");
for(int i = 1 ; i < str.length() ; i=i+2) {
if(str.charAt(i) == 'X'){
if(str.charAt(i-1) == 1){
sBuffer.append(str.charAt(i-1)+""+str.charAt(i));
}else{
StringBuffer sBufferTemp = new StringBuffer("");
for(int j=0 ; j < Character.getNumericValue(str.charAt(i-1)) ; j++){
sBufferTemp.append("1X");
}
sBuffer.append(sBufferTemp.toString());
}
} else {
sBuffer.append(str.charAt(i-1)+""+str.charAt(i));
}
}
System.out.println(sBuffer.toString());
И я хочу знать, есть ли простой способ отделить эту логику? примечание. Если я хочу добавить к отдельному «I», тогда он должен динамически меняться так же, как «1X1X1X1X1X1I1I1I3M1X1X1X»
Я могу изменить его мой код extpend if (str.charAt (I) == 'I') ...
Надеюсь, есть еще один простой способ реализовать это.