对于字符串" a3tx2z"这个输出应该是" attttxzzz"或者对于" 12x"它应该是" 2xxx"。我检查了一切,他们工作。但是当我想打印" ttt"在3的位置,第28行java.lang.UnsupportedOperationException
有一个l.add(i, s1);
。这有什么不对?
package xyz;
import java.util.Arrays;
import java.util.List;
public class xyz {
public static void main(String[] args) {
xyz n = new xyz();
n.blowup("a3tx2z");
}
public String blowup(String str){
String[] array = str.split("");
List<String> l = Arrays.asList(array);
for(int i=0; i<l.size(); i++){
String s1 = l.get(i);
if(s1.matches("-?\\d+(\\.\\d+)?")){
String s2 = l.get(i+1);
if(!(s2.matches("-?\\d+(\\.\\d+)?"))){
int t = Integer.parseInt(s1);
while(t>0){
l.add(i, s1);
t--;
}
}
}
}
for(String x: l){
System.out.print(x);
}
return "";
}
}
答案 0 :(得分:3)
你得到Arrays.asList
返回的List
,但它只是一个数组的包装器,所以你不能add
任何东西。
返回由指定数组支持的固定大小的列表。
如果您必须add
,请从该列表中创建另一个ArrayList
。
List<String> l = new ArrayList<String>(Arrays.asList(array));