/ / Vytvorenie 2D poľa z každého piateho prvku iného poľa - java, polia, syntaktická analýza, viacrozmerné pole

Vytvorenie 2D poľa od každých päť prvkov iného poľa - java, array, parsovanie, multidimensional-array

Dobre, narazil som na tehlovú stenu a bolo tozabil ma dva dni a ja som z nápadov. V podstate to, čo mám, je program, ktorý prijíma dáta späť zo servera pomocou API spoločnosti. Dáta sa vracajú v poriadku a môžem ich bez problémov zmeniť na pole. Potrebujem však sekundárne pole vytvorené z hodnôt v tomto poli. Ukážem ti:

Data Recieved and Parsed into Array:
String[] tag data = {d1,d2,d3,d4,d5,d6,d7,d8,d9,d10}  <-----these are populated automatically by the program.

Čo by som potreboval, je ďalšie pole vytvorené slovami d1-d5 a potom d6-d10, vyskúšal som si slučky a čo, ale problém je, že vytlačí iba prvých päť opakovane.

Tu je kód, ktorý mám zatiaľ:

String[][] tags = null;

try {
//Data is a string var that is passed to this method.It is the return data from the URL.
data = data.substring(61, data.length());
String[] tagname = data.split(";");
String[] secondArray = new String[5];
for(int x = 0; x <= tagname.length; x++) {
for(int i = 0; i <= 5; i++) {
secondArray[i] = tagname[x];
}
tags[x] = secondArray;
}
Data.setTagArray(tags);
} catch(Exception e) {
e.printStackTrace();
}

Toto sú údaje, ktoré dostanem späť:

["Lamp_Status", null, null, null, null]
["Lamp_Status", 1, null, null, null]
["Lamp_Status", 1, 0, null, null]
["Lamp_Status", 1, 0, 0, null]
["Lamp_Status", 1, 0, 0, 654722]

Nepotrebujem konkrétnu odpoveď, len potrebujem pomocdostať sa správnym smerom. Nie som si istý, čo sa tu deje alebo ako to dokážem. Aby som to zopakoval, potrebujem vytvoriť pole 1-5, 6-10 prvkov iného poľa.

odpovede:

1 pre odpoveď č. 1

Môžete sa pokúsiť

String[][] secondArray = new String[(tagname.length)/5][5];
for(int x = 0; x<=(tagname.length)/5; x++){
for(int i = 0; i <= 5; i++)
secondArray[x][i] = tagname[x];
}

0 pre odpoveď č. 2
String[][] tags = null;

try {
// Data is a string var that is passed to this method.It is the
// return data from the URL.
tags = new String[2][5];
String[] tagname = {"d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10"};
String[] secondArray = new String[5];

tags[0] = Arrays.copyOfRange(tagname, 0, 5);
tags[1] = Arrays.copyOfRange(tagname, 5, 10);
System.out.println(Arrays.toString(tags[0]));
System.out.println(Arrays.toString(tags[1]));
} catch(Exception e) {
e.printStackTrace();
}

Alebo skopírujte potrebné rozsahy.