我收到此错误
"Exception in thread "main" java.lang.StackOverflowError
at java.lang.String.<init>(String.java:201)
at java.lang.String.substring(String.java:1920)
at StringRec.decompress(StringRec.java:18)
at StringRec.decompress(StringRec.java:19)
at StringRec.decompress(StringRec.java:19)
....
...."
当我在此代码中输入字符串q9w5e2rt5y4qw2Er3T时。
public static String decompress(String compressedText) {
if(compressedText.length() <= 1){
return compressedText;
}
else if(Character.isLetter(compressedText.charAt(0)) == true){
return compressedText.charAt(0)+decompress(compressedText.substring(1));
}
else if(Character.isDigit(compressedText.charAt(0)) == true){
char c = compressedText.charAt(0);
int a = c--;
char b = (char) a;
compressedText = b+compressedText.substring(1);
return c+decompress(compressedText);
}
return compressedText.charAt(0)+decompress(compressedText.substring(1));
}
有谁知道为什么会这样?因为对于这个赋值,我必须解压缩一个字符串(假设字符计数将是单位数字(一个字符不会连续重复9次以上),而不使用任何循环。
答案 0 :(得分:0)
你快到了......这是你需要的提示:
tree.treeInstance.GetComponent<MeshFilter>().mesh;
因为我不认为这些行正在按照你的意图行事:
int val = Character.getNumericValue(compressedText.charAt(0))