在String board上添加数字

时间:2018-03-18 17:27:56

标签: java

下面有一部分代码显示了一个单词板。

int a ;
String s = "\nLLUA\nUELB\nPIEA\nNMET";  

String board = "";

for (int i = 0; i < s.length(); i++) {
    a = (int) s.charAt(i);
    if ((a >= 97 && a <= 122) || (a >= 65 && a <= 90)) {
        board =    board  + s.charAt(i) + " | ";

    } else if (board != "" && board.length() != 1) {
        System.out.println(board);
        board = "";
    }else if(board != "" && board.length() == 1){
        board = "";
    }

}        

if (board != "" && board.length() != 1){

    System.out.println("|" + board);
}

我想在电路板的每一行和每一列上添加数字,如下所示:

Board with numbers

任何人都可以帮助我!!!使用正则表达式,表,不允许使用ArrayList。

谢谢。

1 个答案:

答案 0 :(得分:0)

1。您需要改进的事项:

  • Strings的平等(与所有其他对象一样)必须使用equals()
  • 完成
  • 使用StringBuilder连接多个Strings

2。我会以不同的方式完成它(Working example

  • 创建列的第一行索引
  • 遍历每个单词并创建行的索引,然后创建当前单词的字母
public static void main(String[] args) {
    String s = "\nLLUA\nUELB\nPIEA\nNMET";
    String[] words = s.trim().split("\n");             //[LLUA, UELB, PIEA, NMET]

    StringBuilder sb = new StringBuilder("     |");

    for (int i = 1; i < words[0].length() + 1; i++) {
        sb.append(i).append(" | ");
    }

    for (int i = 0; i < words.length; i++) {
        sb.append("\n").append("| ").append(i + 1).append(" | ");
        for (char c : words[i].toCharArray()) {
            sb.append(c).append(" | ");
        }
    }

    System.out.println(sb.toString());
/*
     |1 | 2 | 3 | 4 | 
| 1 | L | L | U | A | 
| 2 | U | E | L | B | 
| 3 | P | I | E | A | 
| 4 | N | M | E | T | 

*/
}