好吧,我有一个作业,我不知道如何解析文件。字符串标记符是我的最佳选择吗? 该文件包含逗号,换行符和空格。 S是起始状态,小a是输入,大A是下一个状态。我应该将文件解析为单独的变量并通过开关案例运行以模拟状态机吗?
这是文件
‘Ends in a
2
S, a, A
S, b, S
A, a, A
A, b, S
F: A
aba
bbaabba
bbabab
aaaab
b
a
非常感谢你,因为我似乎无法开始......
答案 0 :(得分:2)
我最大的问题是如何解析文件?
与任何其他文本文件一样。关于如何在网上进行此操作的确有数百万个例子。
我会使用Scanner
类来查找示例。
我不擅长解析文件。特别是在这种情况下。
通过练习,它会变得更容易。做这个任务会有所帮助。
我应该使用稀释计吗?
该文件有分隔符,所以我不知道你为什么不这样做。
逗号和换行符?
您的文件包含逗号,换行符和空格。
并将状态放入数组并将输入(a,b)放入第二个数组?
Java是一种面向对象的编程语言。也许使用像Map和Objects这样的集合是一个更好的选择。
我应该检查数字吗,isaplha?
我只是假设文件格式化正确,并且当你希望有一个数字和字符串时,你会想到有一个单词/标记来读取数字。
小写和大写alpha?
不确定这是否是一个考虑因素。
我在想我需要一个开关和几个案例来处理状态转换?
如果你的状态是用Java代码处理的,我会说是的。但是,您正在从文本文件中读取状态并将其存储在数据结构中。在这种情况下,更简单的是不使用开关。
有人可以解释我应该如何处理这个文件,以便我可以处理它?
读取它,将数据存储在结构中,处理输入。
我也对如何处理该文件中的F A感到困惑..
这是您需要记录以确定DFA何时停止的信息。
答案 1 :(得分:1)
Java是一种面向对象的语言,因此构建了一系列反映现实世界的类。
示例:
你有什么?他们需要做什么
DFA
州
所以这些类型决定了你应该如何布置你的课程(成员和方法)。所以你应该创建一个DFA类,它应该有一个方法:public boolean process(String input)。