我应该如何循环这个构造函数?参数从文本文件传递。我尝试过 while 循环,但它甚至不读取文本文件的第一行。我的文本文件包含 ff:
s0,a,s0,a,-1(--下一行--)s0,b,s0,b,-1
。如果我不使用循环,它会获取文本文件的内容,并将其传递给构造函数。
编辑:我已经更正并标记了要循环的构造函数。如果我包含第二个 while 循环,它不会获取文本文件的内容。
Edit2:第一个 while 循环将文本文件的内容放入名为参数的数组中。第二个 while 循环执行循环,将参数数组的内容传递给变量,然后将其传递给构造函数。这第二个 while 循环不起作用。
Scanner scanner = new Scanner(new File("D:\\Kirk\\Documents\\NetBeansProjects\\TuringMachine\\src\\turingmachine\\Algorithms.txt"));
String data = scanner.nextLine();
String[] arguments = data.split(",");
StringTokenizer st = new StringTokenizer(data);
int i = 0;
while (st.hasMoreTokens()) { //loop for putting contents of text file to array
arguments[i++] = st.nextToken();
}//end loop
while(scanner.hasNextLine()){ //loop transition function(not working)
String fromstate = arguments[0];
String read = arguments[1];
String tostate = arguments[2];
String write = arguments[3];
int move = Integer.parseInt(arguments[4]);
trans.add(new Transition(new StateTapeSymbolPair(fromstate, read), new StateTapeSymbolPair(tostate, write),move));
//loop the above constructor
}//end while
最佳答案
您没有循环获取每行的数据。 这里有一个例子:
Scanner scanner = new Scanner(new File("Algorithms.txt"));
while(scanner.hasNext()){
String data = scanner.nextLine(); // your line
String[] arguments = data.split(","); // split the line
// getting data for each data inside the line
String fromstate = arguments[0];
String read = arguments[1];
String tostate = arguments[2];
String write = arguments[3];
int move = Integer.parseInt(arguments[4]);
System.out.println(fromstate+"-"+read+"-"+tostate+"-"+write+"-"+move);
}
关于java - 构造函数的循环方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46260483/