创建一个字符串从一个字符串数组,这样是可读的

我看起来像这样的代码:创建一个字符串从一个字符串数组,这样是可读的

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

回到顶部