助けてください、単純な dfa を実行しようとしていますが、うまくいきません。111,000,110 を含むテキスト ファイルから 3 行の入力をテストしようとしています。私はそれらを3つのトークンとして分離しようとしましたが、テストに関しては、プログラムはまだそれを全体として実行しています。事前に助けてくれてありがとう
import java.util.*;
import java.io.*;
public class A
{
public static void main(String args[]) throws Exception
{
FileReader fileInput = new FileReader("B:\\input1.txt");
BufferedReader readInput = new BufferedReader(fileInput);
FileWriter fileOutput = new FileWriter("B:\\output.txt");
PrintWriter outFile = new PrintWriter(fileOutput);
Scanner scanLine = new Scanner(readInput);
int cs = 0;
final int q0 = 0;
final int q1 = 1;
int noOfLines = 0;
while(scanLine.hasNextLine())
{
String[] tokens = scanLine.next().split("\n");
for(String words : tokens)
{
outFile.println(words);
char[] stringArray = words.toCharArray();
for(char x : stringArray)
{
switch(cs)
{
case q0:
switch(x)
{
case '1':
cs = q1;
break;
case '0':
cs = q0;
break;
default:
outFile.println("error");
break;
}
break;
case q1:
switch(x)
{
case '1':
cs = q1;
break;
case '0':
cs = q1;
break;
default:
outFile.print("error");
break;
}
break;
default:
break;
}
}//end for char array
outFile.println();
noOfLines++;
if(cs == q1)
{
outFile.println("accepted");
}
else
{
outFile.println("rejected");
}//end if else
}//end for string array
}//end while
outFile.println();
fileInput.close();
readInput.close();
outFile.close();
fileOutput.close();
}
}