2016-04-09 57 views
0

Printf kullanarak bir dizi yazdırmaya çalışırken biraz sorun yaşıyorum, OOP aracılığıyla yapıyorum. Im 10 satış temsilcileri için rastgele maaşları geçen. Burada Yazıcı ile javada dizileri kullanma

Ben şimdiye kadar ne var olduğunu ...
public void printArray() 
{ 
    for(int salesRep = 0; salesRep < salary.length; salesRep++) 
    { 
     System.out.printf("Sales Rep %d%n", "%4d Current Salary: %2.f", (salesRep + 1), salary[salesRep]); 
    } 
} 

Bu

alıyorum çıkışı ...

enter image description here

Ben böyle gösterilecek almaya çalışıyorum Ancak ... enter image description here

Herhangi bir yardım mutluluk duyacağız.

System.out.printf("Sales Rep %d Current Salary: %.2f %n", (salesRep + 1), salary[salesRep]); 

basılacaktır Her satır çift tırnak içindeyse:

+0

, ama bana göre 3 (belki 4) formatı belirleyiciniz var (% d% n% 4d% 2.f) ve sadece 2 parça veri ((salesRep + 1) ve maaş [sal] esRep]). – jbm

+0

& d & n bir ondalık tamsayı ve yeni satır için (ki 1 belirtici olarak sayıyorum)% 4d sekme boyunca ve% 2.f ise 2 ondalık basamağa sahip olmak mıdır? – Konahrik16

+1

printf() imzası printf (String formatı, Object ... args) 'dır. Ancak, iki biçim dizginiz ve sonra 1 biçim dizesi ve 3 argüman yerine 2 argüman var. –

cevap

3

Ben böyle bir şey olması gerektiğini düşünüyorum. Aşağıdaki değerler, sırasıyla tırnakların içindeki% d ve% f değerlerini değiştirir (kendi genişliğinizi/aralığını seçebilirsiniz). Tırnakların içindeki% n bir yeni satır oluşturacaktır.

+0

% 2.f% n -% .2f% n değiştirdim ve işe yaradı! – Konahrik16

1

Biçim dizelerinizi ilk parametre olarak tek bir dizede birleştirmeniz gerekir. Ayrıca çok fazla belirleyiciniz var, bu yüzden %4d'u kaldırın. Ve son belirteci %.1f olarak değiştirin - periyot (.) rakamdan önce gelmelidir (1). java printf nasıl kullanılacağına dair

diğer bilgiler: https://www.cs.colostate.edu/~cs160/.Spring16/resources/Java_printf_method_quick_reference.pdf

Örnek:

public class Test { 
    public static void main(String []args) { 
    printArray(); 
    } 

    public static void printArray() { 
    double salary[] = {35000.0, 45000.0, 2000.0, 110000.0, 5000.0 
         35001.0, 18999.0, 95000.0, 9999.0, 65000.0}; 
    for(int salesRep = 0; salesRep < salary.length; salesRep++) { 
     System.out.printf("Sales Rep %d\tCurrent Salary: %.1f\n", 
         (salesRep + 1), salary[salesRep]); 
    } 
    } 
} 

Çıktı: Hayatımda Java tek bir satır kodlu asla

Example output