Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将二维数组中的字符串打印到一定数量的行中_Java - Fatal编程技术网

Java 将二维数组中的字符串打印到一定数量的行中

Java 将二维数组中的字符串打印到一定数量的行中,java,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<c

我正在尝试用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; 
}
公共类键盘{
字符[][]个字母;
公用键盘(字符串字符,整数行长度){
int计数器=0;

对于(int i=0;i而言,
toString()
方法的逻辑看起来很好,但您没有在构造函数中填充
字母数组。因此,您需要在构造函数中添加类似以下内容:

    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);
            }
        }
    }
公用键盘(字符串字符,整数行长度){
//你不需要用循环来计算长度
int nRow=chars.length()/rowLength;
如果(chars.length()%rowLength!=0)nRow++;
字母=新字符[nRow][rowLength];
for(int i=0,n=0;i