[英]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.