मुझे एक टेक्स्ट फ़ाइल पढ़ने में सक्षम होना चाहिए, जिसे तब 2 डी सरणी में रखा जाता है। यहां मैंने जितने भी प्रश्न देखे हैं वे ArrayLists का उपयोग करते हैं, जिनकी हमें अनुमति नहीं है। मेरी टेक्स्ट फ़ाइल जैसा दिखाया गया है।

Bananas, 5, 5
Apples, 5, 5
Steak, 5, 10

पहला मान नाम, दूसरा मात्रा और तीसरा मूल्य होने के साथ। मैं उन्हें ३० वस्तुओं की एक सरणी inventory[30][3] में रखना चाहूंगा, जिसमें मैंने जिन तीन लक्षणों का उल्लेख किया है। मैं क्षमा चाहता हूं अगर यह बहुत बुनियादी है, तो मैंने Google और YouTube को बहुत कोशिश की और एक आसान जवाब नहीं मिला।

0
simonshampoo 22 अप्रैल 2020, 02:26

1 उत्तर

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

यह वह कोड है जिसका उपयोग मैं एक सरणी प्राप्त करने के लिए करता था जैसा आप चाहते हैं:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadFileIntoArray {
    public static void main(String[] args) {
        String[][] inventory = new String[30][3];
        try {
            File myObj = new File("filename.txt");
            Scanner myReader = new Scanner(myObj);
            int i = 0;
            while (myReader.hasNextLine()) {
                String[] traits = myReader.nextLine().split(",");
                for(int j = 0; j < traits.length; j++){
                    inventory[i][j] = traits[j];
                }
                i++;
            }
            // do stuff here with inventory
            myReader.close();
        } catch (FileNotFoundException e) {
            System.out.println("An error occurred.");
            e.printStackTrace();
        }
    }
}

यहाँ ध्यान देने योग्य कुछ बातें।

पहला विभाजन है जो पाठ फ़ाइल की प्रत्येक पंक्ति को अल्पविराम पर विभाजित करता है। फ़ाइल पर स्वरूपण के आधार पर आपको एक स्थान में जोड़ने की आवश्यकता हो सकती है ताकि विशेषता पर पीछे की ओर खाली स्थान न हो: split(", ")

अगली बात यह है कि मैंने traits स्ट्रिंग सरणी के माध्यम से पुनरावृत्त किया जो कि अधिक हो सकता है क्योंकि केवल 3 प्रविष्टियां ही होंगी, लेकिन इसका मतलब है कि भविष्य में यदि आवश्यक हो तो सरणी को और अधिक लक्षणों में विस्तारित किया जा सकता है।

अंत में आखिरी चीज है i वेरिएबल। लूप पुनरावृत्ति को ट्रैक करने के लिए इसकी आवश्यकता है।

0
Ross Cradock 22 अप्रैल 2020, 02:34