我正在尝试重复更改字符串的方法,以便方法的输入是已运行的相同方法的输出。这将循环播放。
以下是代码摘录:
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返回的值。我怎么能实现这个目标?
答案 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);
}