2012-11-18 150 views
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; 
} 
} 

回答

1

聽起來像所有你需要的是一個新的行字符。例如。

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

新行字符「\ n」會將輸出放到它自己的行上。

+1

其實換行符是「\ n」個 –

+0

以及我需要調用雖然顯示方法,那就是讓我很困惑,我不明白客場傳遞數組索引到顯示方法的字符串 – user1787811

+1

而你不需要調用toString() - 無論如何添加到另一個字符串時發生的情況 – Bohemian

0

這樣做:

System.out.format("Credit Card # %d:\n%s", i, cred1[i].toString()); 
+0

我需要調用displayarray方法內的顯示方法,儘管這是什麼讓我感到困惑 – user1787811

+0

@ user1787811跳過它總共 - 見編輯答案 – Bohemian

+0

但這項任務的要求是調用displayarraymethod內的顯示方法 – user1787811