समस्या यह है कि मुझे नहीं पता कि कंसोल से मेरे इनपुट कैसे स्टोर करें।

यहाँ मेरा कोड है:

for (int j = 0; j < arr1.length; j++) {
    System.out.println("");
    System.out.print("Select product code:        ");
    arr1[j] = reader.next();

    if (arr1[j].contains("A001")){
        mouse = 100.00;
        System.out.print("Enter quantity:               ");
        qty = reader.nextInt();
        amount = qty * mouse;
        System.out.print("Amount:\t\t\t    " + amount);
    }
    if (arr1[j].contains("A002")) {
        monitor = 2500.00;
        System.out.print("Enter quantity:               ");
        qty = reader.nextInt();
        amount = qty * monitor;
        System.out.print("Amount:\t\t\t    " + amount);
    }
    if (arr1[j].contains("A003")) {
        keyboard = 200.00;
        System.out.print("Enter quantity:               ");
        qty = reader.nextInt();
        amount = qty * keyboard;
        System.out.print("Amount:\t\t\t    " + amount);
    }
    if (arr1[j].contains("A004")) {
        flashdisk = 300.00;
        System.out.print("Enter quantity:               ");
        qty = reader.nextInt();
        amount = qty * flashdisk;
        System.out.print("Amount:\t\t\t    " + amount);
    }
    if (arr1[j].contains("A005")) {
        harddisk = 1500.00;
        System.out.print("Enter quantity:               ");
        qty = reader.nextInt();
        amount = qty * harddisk;
        System.out.print("Amount:\t\t\t    " + amount);
    }

और यहां वह कोड है जो कोड की पंक्ति होना चाहिए जहां यह संग्रहीत डेटा का परिणाम दिखाएगा।

System.out.println("");
System.out.print("Add item (y/n) " );
yn = reader.next().charAt(0);
        
if (yn == 'y' || yn == 'Y') {           
    continue;
}       
else if (yn == 'n' || yn == 'N') {          
    System.out.println("Code\tDescription\tUnit Price\tQuantity\tAmount");
    System.out.print(arr1[j]);
    if (arr1[j].contains("A001")) {
        System.out.print("\tMouse");
        System.out.print("\t\t"+mouse);
        System.out.print("\t\t"+qty);
        System.out.print("\t\t"+amount);
                
        if (arr1[j].contains("A002")) {
            System.out.print("\t\nMonitor");
            System.out.print("\t\t"+mouse);
            System.out.print("\t\t"+qty);
            System.out.print("\t\t"+amount);
        }
    }
}

नमूना इनपुट होना चाहिए:

Select product code: A004
Enter quantity: 2
Amount: 800
add item(y/n)?: y

Select product code: A001
Enter quantity: 1
Amount: 100
add item(y/n)?: n

तो इसे एक सरणी में संग्रहीत किया जाएगा जो परिणाम होगा लेकिन दोनों इनपुट सरणी प्राप्त करने के बजाय, मुझे केवल उन दोनों के बजाय दूसरा इनपुट सरणी मिलती है।

Code    Description Unit Price  Quantity    Amount
A001    Mouse       100.0       1           100.0
0
Jiggy Palconit 19 नवम्बर 2020, 12:57

1 उत्तर

सबसे बढ़िया उत्तर

हर बार जब आप उपयोगकर्ता इनपुट पढ़ रहे हैं, तो आप जानकारी को ओवरराइड कर रहे हैं, क्योंकि आप सरणी के बजाय चर में संग्रहीत कर रहे हैं।

एक वस्तु बनाएं जैसे:

class Product {
  private String code;
  private String name;
  private Long price;
  private Integer amount;

  public Long getPrice();
  public Integer getAmount();
  public void setPrice(Long price) { this.setPrice(price); }
  public void setAmount(Integer amount) { this.setAmount(amount); }
...
}

फिर, एक Product [] productArr = new Product[anyLength]; बनाएं अब जब आप जाँचते हैं कि क्या इनपुट उदाहरण के लिए A005 है, तो आप ऑब्जेक्ट को निम्न जानकारी के साथ संग्रहीत करेंगे:

if (arr[j].contains("A005")) { 
        Product newProduct = new Product();
        newProduct.setPrice(1500.00);
        newProduct.setCode("A005");
        qty = reader.nextInt();
        amount = qty * newProduct.getPrice();
        newInfo.setAmount(amount);
        productArr[j] = newProduct;
}

फिर जब आपको उन्हें प्रिंट करने की आवश्यकता होती है, तो आप उदाहरण के लिए केवल इंडेक्स productArr[j].getAmount() द्वारा एक्सेस करते हैं।

अनुशंसित के रूप में प्रयास करें, लेकिन भविष्य में यदि आप एक बेहतर दृष्टिकोण चाहते हैं, तो बेहतर होगा कि आप अपने उत्पाद, A002 ..., A003, ... के लिए A001 को मैप करने के लिए Map का उपयोग करें और फिर कब आपको उन्हें प्रिंट करने की आवश्यकता है आप बस कुंजी द्वारा प्राप्त करें।

1
Guilherme Alencar 19 नवम्बर 2020, 18:05