Java 为什么loop没有做好它的工作?

Java 为什么loop没有做好它的工作?,java,Java,所以我有这个代码,出于某种原因,它返回的字符串[]总是用一个“s”填充。我希望它在每个字符串的末尾添加一个“s”,如果数组中的值为null,则将其设置为单个“s” 公共静态字符串[]填充数组(列表){ String[]输出=新字符串[list.size()]; 对于(inta=0;aif(输出[a]==null){ 需要 if(list.get(a)==null){ 因为前者总是null,因为这就是您要填充的内容。if(output[a]==null){ 需要 if(list.get(a)==n

所以我有这个代码,出于某种原因,它返回的
字符串[]
总是用一个“s”填充。我希望它在每个
字符串的末尾添加一个“s”,如果数组中的值为null,则将其设置为单个“s”

公共静态字符串[]填充数组(列表){
String[]输出=新字符串[list.size()];
对于(inta=0;a
if(输出[a]==null){

需要

if(list.get(a)==null){

因为前者总是
null
,因为这就是您要填充的内容。

if(output[a]==null){

需要

if(list.get(a)==null){


因为前者总是空的,因为这就是你要填充的。

输出[a]总是空的,因为你还没有填充它。

输出[a]总是空的,因为你还没有填充它。

输出[a]==null
总是空的,它应该是
列表。get(a)==null
输出[a]==null
始终为null,它应该是
list.get(a)==null

您混淆了列表和输出。您的检查是如果输出[a]==null,这始终是真的。您希望'if(list.get(a)==null)
新字符串[list.size()]
创建一个
字符串[]
充满
null
。这使您可以对
输出进行测试[a] ==null
始终计算为
true
@KoosGadellaa谢谢!我只是犯了一个愚蠢的错误,我想…VTC是印刷错误-不太可能对未来的用户有帮助。@CristianMeneses差不多,因为您需要将
null
替换为
“s”
您混淆了列表和输出。您的检查是是否输出[a]==null,始终为真。您希望“if(list.get(a)==null)
新字符串[list.size()]
创建一个
字符串[]
充满
null
。这使您的
测试输出[a]==null
始终计算为
true
@KoosGadellaa谢谢!我想我犯了一个愚蠢的错误…VTC是印刷错误-不太可能对未来的用户有帮助。@CristianMeneses差不多,因为你需要用
s
替换
null
public static String[] fillArray( List<String> list ){
    String[] output = new String[list.size()];
    for(int a=0; a<output.length; a++){
        if( output[a]==null){
            output[a] = "s";
        }else{
            output[a]= list.get(a) + "s";
        }
    }
    return output;
}