如何将方法的输入分配给同一方法的输出?

时间:2012-08-22 00:45:45

标签: java

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

以下是代码摘录:

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返回的值。我怎么能实现这个目标?

1 个答案:

答案 0 :(得分: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);
}