簡體   English   中英

如何在Java中將整數存儲到字符串多維數組中

[英]How to store a integer into a string multi-dimensional array in java

我需要存儲25個不同的數組,其中第一個位置是人的名字,其余的索引作為做數學運算的整數。 我有一個String arrray [25] [53]。 如何使array [0-25] [1-52]為整數? 我假設使用.parseInt,但是考慮到我仍在學習Java,我不太確定它們如何工作。

String[][] volunteerNamesAndHours = new String [25][53];
    int ID = 0;
    int week;
    do{
        volunteerNamesAndHours[ID][NAME] = input.next();
            for(week = 1; week < 53; week++){
                 volunteerNamesAndHours[ID][week] = Integer.parseInt(null, ID);

編輯:我會使用OOP或地圖,但考慮到我們還沒有走得那么遠,我不想超越自己的界限,讓我的教授發瘋。 我知道這不是最直觀的方法,但是我最終想到的這個問題是什么?

public static String[][] getvolunteerChart(Scanner input){
    String[][] volunteerNamesAndHours = new String [25][53];
    int ID = 0;
    int week;
    do{
        volunteerNamesAndHours[ID][NAME] = input.next();
            for(week = 1; week < 53; week++){
                 volunteerNamesAndHours[ID][week] = Integer.toString(input.nextInt());
            }
        ID++;    
    }
    while(ID <= 24);

    return volunteerNamesAndHours;        

            }

我建議使用哈希圖將名稱存儲為鍵,將整數數組列表存儲為值,例如

Map<String, ArrayList<Integer>> volunteerNamesAndHoursMap = new HashMap<String, ArrayList<Integer>>();

您需要針對此用例使用Map結構。

Map<String, Integer[]> personIDs = new HashMap<>(25);

personIDs.put("Peter", new Integer[]{5,22,7734});

personIDs.get("Peter");//returns the array 5,22,7734

您應該遵循一種面向對象的方法,並將您的志願者數據封裝在這樣的類中:

public class Volunteer {

    private int id;

    private String name;

    private int hours;

    .
    .
    .

    public in getId() {
        return id;
    }

    public void setid(int id) {
        this.id = id;
    }

    .
    .
    .

}

現在,您可以將它們存儲在List或數組中。 除了數組之外, List通常沒有預定義的大小限制。

List<Volunteer> volunteers = new ArrayList<>();

// Or as an array

Volunteer[] volunteers = new Volunteer[25];

然后,您可以遍歷列表,並使用如下的getter和setter進行數學運算:

for (Volunteer volunteer : volunteers) {
    int oldHours = volunteer.getHours();
    int newHours = oldHours + 8;

    volunteer.setHours(newHours);
}

首先,我認為您需要一個String數組,然后是一個長度為52的int多維數組。Java是一種非常靜態的語言,它不會讓您做瘋狂的事情,例如將Integer存儲在字符串數組。

String[] volunteerNames = new String [25];
int[] volunteerHours = new int [25][52];

第二,我認為您確實可以在這里使用一些不錯的Object定向,為Volunteer創建一個類,並在其中存儲一個帶有名稱和int數組的字符串。

(關於此的PS:稍后嘗試搜索getter和setter。通常的做法是聲明具有私有作用域的類變量並定義訪問它們的方法,但是我在這里將它們與公共作用域一起使用只是為了使示例簡短

public class Volunteer {

    public String name;
    public int[] hours;

    Volunteer(String name, int[] hours) {
        this.name = name;
        this.hours = hours;
    }
}

第三,如果您真的想像做的那樣做,我想您應該使用地圖。

Map<String, Integer[]> volunteersHours = new HashMap<String, Integer[]>();
volunteersHours.put("John", new Integer[] {1, 2, 3, 4, etc...});

volunteersHours.get("John"); // will return the hours array

如果您堅持使用String數組,則需要使用Integer類的toString函數。

例如

Integer.toString(42);

但是,這將在以后嘗試對它們執行數學運算時引起痛苦。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM