构造函数的循环方法

时间:2017-09-17 03:55:25

标签: java loops

我应该如何循环这个构造函数?参数从文本文件传递。我尝试了一个while循环,但它甚至没有读取我的文本文件的第一行。我的文本文件包含ff: s0,a,s0,a,-1 (--next line--) s0,b,s0,b,-1。如果我不使用循环,它将获取我的文本文件的内容,并将其传递给构造函数 编辑:我已经纠正并标记要循环的构造函数。如果我包含第二个while循环,则它不会获取文本文件的内容。

Edit2:第一个while循环将我的文本文件的内容放入一个名为argument的数组中。第二个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

1 个答案:

答案 0 :(得分:2)

你没有循环获取eah线的数据。 这是一个例子:

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);

        }