将 2D 数组中的一串字符打印成一定数量的行

  • 本文关键字:打印 字符 数组 2D 一串 java
  • 更新时间 :
  • 英文 :


我正在尝试在Java中制作一个键盘,该键盘接受用户输入的字母,以及每行所需的字符数。然后,它应该打印所需行数的字符,因此如果输入"abcdefgh"并且所需的行号为 4,则应打印:

abcd  
efgh  

但我坚持如何让它工作。

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; 
}

toString()方法的逻辑看起来不错,但您没有在构造函数中填充letters数组。所以你需要在构造函数中添加这样的东西:

    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);
            }
        }
    }

最新更新