2

ディスプレイ配列方式について質問があります。これをフォーマットする方法がわかりません:

Credit Card # 4: 
8908 9014 8812 1331

私がする必要があるのは、配列要素ごとに表示メソッドを呼び出し、配列のインデックスをラベルの文字列に渡すことです。これを行う方法がわかりません。これを試しましたが、間違っています:

System.out.println(display("Credit Card # %d", cred1[i]));

誰でもこれを行う方法を提案できますか?

package homework4;
import java.util.Scanner;
public class Prog4 {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args)
{   CreditCardNumber[] cred1;
    CreditCardNumber cred2 = getInput();
    Display("The complete number from your input:", cred2);
    cred1 = getInputArray();
    DisplayArray(cred1);
    TryAnother();
}

public static CreditCardNumber getInput() {
    String ID;
    String accNum;
    CreditCardNumber tempCred;      
    System.out.printf("Please enter issuer ID:");
    ID = scanner.next();
    System.out.printf("Please enter account number:");
    accNum = scanner.next();
    tempCred = new CreditCardNumber(ID, accNum);

    return tempCred;
}
public static void Display(String ch, CreditCardNumber cred2)
{

    System.out.println(ch);
    System.out.println(cred2.toString().replaceAll(".{4}", "$0   "));       
}

public static CreditCardNumber[] getInputArray()
{
    CreditCardNumber[] tempArray;
    String tempID;
    int size;       
    System.out.printf("Please enter size of the aray:");
    size = scanner.nextInt();
    if(size < 1)
    {
        size = 1;
    }
    tempArray = new CreditCardNumber[size];
    System.out.printf("Please enter issuer ID:");
    tempID = scanner.next();
    System.out.print(tempArray.length);
    for(int i = 0; i < tempArray.length; i++)
    {
        tempArray[i] = new CreditCardNumber();
        tempArray[i].CreateCred(tempID);
    }

    return tempArray;
}

public static void DisplayArray(CreditCardNumber[] cred1)
{
    for(int i = 0; i< cred1.length; i++)
    {
        System.out.println(display("Credit Card # %d", cred1[i]));
    }
}

public static boolean TryAnother()
{
    String s;
    System.out.printf("Get more credit card numbers? (n for no):");
    s = scanner.next();
    if(s.charAt(0) != 'N' && s.charAt(0) != 'n')
    {
        return true;
    }
    return false;
}
}
4

2 に答える 2

1

必要なのは改行文字だけのようです。例えば。

System.out.println("Credit Card # " + cred1[i] + "\n" + cred2.toString());

改行文字「\n」は、出力を独自の行にドロップします。

于 2012-11-18T05:12:03.060 に答える
0

これを行う:

System.out.format("Credit Card # %d:\n%s", i, cred1[i].toString());
于 2012-11-18T05:18:17.190 に答える