-2

我正在尝试重复更改字符串的方法,以便该方法的输入是已运行的同一方法的输出。这将被循环。

这是代码摘录:

public void start() {
    String inputString = "                                          ";
    boolean gameOver = false;

    while (!gameOver) {
        int column = columnResult();

        String tokens = enterToken("X", inputString,column);   
        System.out.println(tokens);

        enterToken("X", tokens, column);
        System.out.println(tokens);
    }
}

private int columnResult() {
    System.out.println("Enter column for X:");
    String keyInput = Keyboard.readInput();
    int column1 = Integer.parseInt(keyInput);
    return column1;
}

private String enterToken(String tokenSymbol, String inputString, int column){
    String columnEdit = inputString.substring(column*6-6,column*6); 

    String columnEdit1 = columnEdit.trim();
    String columnEdit2 = columnEdit1+tokenSymbol+"                 ";
    String columnEdit3 = columnEdit2.substring(0,6);
    String start = inputString.substring(0,column*6-6);
    String end = inputString.substring(column*6);

    System.out.println(start);
    return start+tokenSymbol+end;
}

所以我试图为 NEXT enterToken 方法提供从 PREVIOUS 返回的值。我怎样才能做到这一点?

4

1 回答 1

0

我看到了问题...

您的 String 变量仅在循环内具有范围,因此当循环迭代时,它是一个新变量。在循环之外定义您的 String 变量,因此它的范围在循环迭代中持续存在:

String tokens = inputString; // initialize the input
while (!gameOver) {
    int column = columnResult();
    // the result will be feed back in next iteration
    tokens = enterToken("X", tokens, column);   
    System.out.println(tokens);
}
于 2012-08-22T00:57:45.667 回答