基于子串的方法无法正常运行

时间:2012-08-21 10:25:45

标签: java substring

我正在创建一组方法,根据输入字符串显示一行游戏板,并将其存储在一个字符串中,我稍后会调用它。我的代码如下:

public class A1Program {

    public void start() {
        String inputString = "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO";
        int row = 1;
        int length = inputString.length();

    }

    private String extractRow(int row, String inputString) {
        String rowString1 = inputString.substring(row, row + 1);
        String rowString2 = inputString.substring(row + 6, row + 7);
        String rowString3 = inputString.substring(row + 12, row + 13);
        String rowString4 = inputString.substring(row + 18, row + 19);
        String rowString5 = inputString.substring(row + 24, row + 25);
        String rowString6 = inputString.substring(row + 30, row + 31);
        String rowString7 = inputString.substring(row + 36, row + 37);


        return rowString1 + "|" + rowString2 + "|" + rowString3 + "|" + rowString4 + "|" + rowString5
                + "|" + rowString6 + "|" + rowString7 + "|";

    }

    private void displayBoard(String extractRow) {
        System.out.println(extractRow + "-----------");
    }
}

当我运行代码时,没有显示任何内容,但我希望它显示一行板...(extractRow)。

4 个答案:

答案 0 :(得分:1)

你永远不会调用extractRow和displayBoard方法。

在start方法中调用这些方法,您的代码将正常工作。

答案 1 :(得分:0)

除非您的代码实际调用后没有任何行为上的错误,否则您应该在循环中完成工作:

public static void main (String[] args) throws Exception {
  displayBoard(extractRow(0, "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO"));
}
private static String extractRow(int row, String inputString) {
  final StringBuilder b = new StringBuilder();
  for (int i = 0; i < 37; i+=6) b.append(inputString.charAt(i)).append('|');
  return b.toString();
}
private static void displayBoard(String extractRow) {
  System.out.println(extractRow + "-----------");
}

这打印与您的代码相同:

X|X|X|X|X|X|X|-----------

答案 2 :(得分:0)

尝试使用此代码,可能会打印出来。

public class A1Program {

    public void start() {
        String inputString = "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO";
        int row = 1;
        int length = inputString.length();
        //check here
        displayBoard(extractRow(row, inputString));

    }

    private String extractRow(int row, String inputString) {
        String rowString1 = inputString.substring(row, row + 1);
        String rowString2 = inputString.substring(row + 6, row + 7);
        String rowString3 = inputString.substring(row + 12, row + 13);
        String rowString4 = inputString.substring(row + 18, row + 19);
        String rowString5 = inputString.substring(row + 24, row + 25);
        String rowString6 = inputString.substring(row + 30, row + 31);
        String rowString7 = inputString.substring(row + 36, row + 37);


        return rowString1 + "|" + rowString2 + "|" + rowString3 + "|" + rowString4 + "|" + rowString5
                + "|" + rowString6 + "|" + rowString7 + "|";

    }

    private void displayBoard(String extractRow) {
        System.out.println(extractRow + "-----------");
    }
}

答案 3 :(得分:0)

公共类A1Program {

private String extractRow(int row, String inputString) {
    String rowString1 = inputString.substring(row, row + 1);
    String rowString2 = inputString.substring(row + 6, row + 7);
    String rowString3 = inputString.substring(row + 12, row + 13);
    String rowString4 = inputString.substring(row + 18, row + 19);
    String rowString5 = inputString.substring(row + 24, row + 25);
    String rowString6 = inputString.substring(row + 30, row + 31);
    String rowString7 = inputString.substring(row + 36, row + 37);


    return rowString1 + "|" + rowString2 + "|" + rowString3 + "|" + rowString4 + "|" + rowString5
            + "|" + rowString6 + "|" + rowString7 + "|";

}

private void displayBoard(String extractRow) {
    System.out.println(extractRow + "-----------");
}

public static void main(String args[]){
    A1Program a = new A1Program();
    a.displayBoard(a.extractRow(0, "XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXO"));
}

}

试试这个你会看到预期的结果