Java: Wie kann ich ein zweidimensionales Char-Array mit chars füllen?
Ich habe ein String, den ich in ein char[]-Array verwandele und die Indizes sollen in ein zweidimensionales Array:
String originMessage = "ABCDEFGHIJKLMNO;
char[] messageInChar = originMessage.toCharArray();
char[][] charArray = new char[4][7];
for (int i = 0; i < charArray.length; i++) {
for (int j = 0; j < charArray[0].length; j++) {
charArray[i][j] = messageInChar[j];
}
}
Es befüllt es aber immer mit ABCDE ABCDE. Ich weiß, das was in der Schleife falsch ist, weil das j ja immer wieder von 0 anfängt.
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Java, Programmieren & Softwareentwicklung
Der index für messageInChar muss über die innere Schleife hinaus immer weitergeführt werden. Man könnte sich dafür eine extra Zählervariable anlegen.
for (int i = 0, j = 0; i < charArray.length; ++i) {
for (int k = 0; k < charArray[0].length; ++k, ++j) {
if (j < messageInChar.length) {
charArray[i][k] = messageInChar[j];
}
}
}
Da im charArray insgesamt mehr Plätze frei sind, als messageInChar Zeichen hat, müssen die Fälle, bei denen der Index überlaufen würde, herausgefiltert werden.
Das Resultat wäre letztendlich Folgendes:
{
{ 'A', 'B', 'C', 'D', 'E', 'F', 'G' },
{ 'H', 'I', 'J', 'K', 'L', 'M', 'N' },
{ 'O', '\0', '\0', '\0', '\0', '\0', '\0' }
}