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

关于java - 将二维数组中的一串字符打印到一定数量的行中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830477/

相关文章:

java - 需要帮助将代码片段从 java 翻译为等效的 C#

java - 警报对话框中的可单击文本链接可打开 Activity

java - WebLogic 默认会在哪里查找文件?

java - 在一台 PC 上模拟两个 Java SE 实例

java - 没有类定义错误android studio

java - 无法将收到的短信文本与 Android 中的值进行比较

java - 连接java与约束逻辑编程

java - 如何在 java 中将 json 作为 Rest Post Web 服务的查询参数传递

java - 通过递归从两个列表创建一组列表

java - libgdx - 按下后退按钮时舞台被禁用