2016-04-25 6 views
2

Ich versuche, eine Tastatur in Java, die Buchstaben eingegeben durch den Benutzer, sowie eine gewünschte Anzahl von Zeichen pro Zeile. Es sollte dann die Zeichen in der gewünschten Anzahl von Zeilen drucken, so dass, wenn "abcdefgh" eingegeben und die gewünschte Zeilennummer 4 sollte es drucken:Drucken Sie eine Zeichenkette aus einem 2D-Array in eine bestimmte Anzahl von Zeilen

abcd 
efgh 

aber ich bin fest, wie man es an der Arbeit.

public class Keypad { 

char [][] letters; 

public Keypad(String chars, int rowLength) { 
    int counter = 0; 
    for (int i = 0; i<chars.length(); i++){ 
     counter++; 
    } 
    letters = new char[rowLength][counter/rowLength]; 
} 

public String toString() { 
    String s = " "; 

    for (int row=0; row<letters.length; row=row+1) { // Over rows 
     for (int col=0; col<letters[row].length; col=col+1) { 
      s = s + letters[row][col]; 
     } 
     s = s + "\n"; 
    } 
    return "the keypad is" + s; 
} 

Antwort

3

die Logik der toString() Methode sieht gut aus, aber du hast die letters Array im Konstruktor nicht füllen. Daher müssen Sie im Konstruktor Folgendes hinzufügen:

public Keypad(String chars, int rowLength) { 
     // you don't need to count the length with a loop 
     int nRow = chars.length()/rowLength; 
     if(chars.length()%rowLength!=0) nRow++; 
     letters = new char[nRow][rowLength]; 

     for(int i = 0, n = 0 ; i < letters.length ; i++) { 
      for(int j = 0 ; n < chars.length() && j < letters[i].length ; j++, n++) { 
       letters[i][j] = chars.charAt(n); 
      } 
     } 
    } 
Verwandte Themen