Return 在 toString 内部使用 for 循环的多个数组 Class

Return Multiple Arrays Using for Loop Inside toString Class

这就是我目前所拥有的。这个程序基本上做的是获取用户输入(他们的社会安全号码),验证他们的输入格式是否正确(XXX-XX-XXXX),将经过验证的输入添加到数组列表中。现在最后一步是创建一个 toString() 方法,该方法将 return 添加到数组中的所有社会安全号码的人类可读字符串表示形式。此方法必须使用 for 循环,并且必须每行打印 1 个社会保险号条目。例如:

“您输入的社会安全号码是:
345-43-5674
456-62-8435
910-70-0053

package SSNServerStorage;

public class SSNArray
{
    private String[] SSNNumber;
    private int arrayCount;

    public SSNArray(){
        SSNNumber = new String[300];
        arrayCount = 0;
    }

    public SSNArray(int arraySize){
        SSNNumber = new String[arraySize];
        arrayCount = 0;
    }

    public String[] getSSNNumber(){
        return SSNNumber;
    }

    public int getArrayCount(){
        return arrayCount;
    }

    public boolean validateSSNNumber(String SSNFormat){
        return SSNFormat.matches("\d{3}-\d{2}-\d{4}");
    }

    public String addSSN(String SSNFormat){
        if (validateSSNNumber(SSNFormat)){
            return SSNNumber[arrayCount++] = SSNFormat;
        }else{
            return null;
        }
    }

    public String toString(){
        System.out.println("The Social Security Numbers you entered are:");

        for()
        {
            //
            //
            //
            //
        }
    }
}
StringBuilder strbul = new StringBuilder()
    for(int i=0;i<SSNNumber.length;i++)
            {
                strbul.append(SSNNumber[i]).append("\n");
            }
return strbul.toString();

您可以声明一个 String 来连接所有的 SSN 号码。

@Override
public String toString(){
    String str = "The Social Security Numbers you entered are:\n";
    for(int x=0; x< arrayCount; x++)
        str += SSNumber[x] + "\n";
    return str;
}

因为它是一个 toString() 方法,所以您需要 return class 的字符串表示而不是 println().

只需连接:

@Override
public String toString(){
String s = "The Social Security Numbers you entered are:\n";
    for(int i =0; i < SSNNumber.length; i ++)
        s +=SSNNumber[i]+"\n";
    return s;
}

您的 toString 方法没有正确的签名,它应该 return String。这应该可以满足您的需求:

@Override
public String toString(){
    StringBuilder sb = new StringBuilder("The Social Security Numbers you entered are:\n");

    for (int i = 0; i < arrayCount; i++) {
        sb.append(SSNNumber[i]).append("\n");
    }

    return sb.toString();
}

还要记得使用 @Override 注释。