创建一个字符串从一个字符串数组,这样是可读的
我看起来像这样的代码:创建一个字符串从一个字符串数组,这样是可读的
StringBuilder strBuilder = new StringBuilder(); for (int i = 0; i < encodeCharString.length; i++) {
strBuilder.append(encodeCharString[i]);
}
String outputString = strBuilder.toString();
f = outputString.length();
if(...){
String[] outStringCopy = outputString.split("");
outputString = "";
String[] outStrArr = new String[outStringCopy.length];
while(f>0){
outStrArr[outStringCopy.length-f-1] = outStringCopy[f-1];
f--;
}
strBuilder = new StringBuilder();
for (int i = 0; i < outStrArr.length; i++) {
strBuilder.append(outStrArr[i]);
}
outputString = strBuilder.toString();
}
textArea.setText(outputString);
如果if
不执行输出是正确的。
如果执行if
,程序将停止(textArea中没有文本)。
当我进入调试模式时,它说outputString
没有任何“”,但它有一个数组,其中包含正确的文本。
回答:
没有对错误输出更多的信息,我可以说,至少,你应该有一个indexoutofboundsexception
这里:
while(f>=0){ outStrArr[outStringCopy.length-f-1] = outStringCopy[f-1];
f--;
}
当f为0,你尝试进入outStringCopy [-1],它抛出一个运行时异常。
实际上,在第一次迭代中f等于outputString
的长度,它等于outStrArr
的长度。 所以outStrArr[outStringCopy.length-f-1]
导致outStrArr[-1]
,你应该在while循环的第一次迭代中得到一个错误。
回答:
的问题是在你的while循环在这里:
while(f>0){ outStrArr[outStringCopy.length-f] = outStringCopy[f-1];
f--;
}
回答:
如果你试图扭转字符串,那么你可以使用StringBuilder.reverse()
:
while(f>=0){ outStrArr[outStringCopy.length-f] = outStringCopy[f-1];
f--;
}
尝试用下面的代码替换此。
if(...){ strBuilder = new StringBuilder(outputString).reverse();
outputString = strBuilder.toString();
}
textArea.setText(outputString);
以上是 创建一个字符串从一个字符串数组,这样是可读的 的全部内容, 来源链接: utcz.com/qa/263428.html