📄 automation.java
字号:
package automation;
public class Automation
{
private int stateNum;
private int transNum;
private int finals[];
private String figure[];
private Transition transitions[];
public Automation(){}
public Automation(int stateNum, int transNum, int finals[], String figure[], Transition transitions[])
{
this.stateNum = stateNum;
this.figure = figure;
this.finals = finals;
this.transNum = transNum;
this.transitions = transitions;
}
public String getFinalString()
{
String temp = " ";
for(int i = 0; i < finals.length; i++)
{
temp += finals[i] + ", ";
}
temp += "\n";
return temp;
}
public String getNumbers()
{
String temp = " ";
temp += "The number of states is " + stateNum +", \n";
temp += "The number of transitions is " + transNum +", \n";
return temp;
}
public String getFigure()
{
String temp = " ";
for(int i = 0; i < figure.length; i++)
{
temp += figure[i] + ", ";
}
temp += "\n";
return temp;
}
public boolean isFigure(String in)
{
for(int i = 0; i < figure.length; i++)
{
if(figure[i].equals(in))
{
return true;
}
}
return false;
}
public boolean check()
{
for(int i = 0; i < finals.length; i++)
{
if(finals[i] > stateNum)
{
return false;
}
}
for(int i = 0; i < transitions.length; i++)
{
if(transitions[i].getStart() > stateNum || transitions[i].getEnd() > stateNum
|| !(isFigure(transitions[i].getState())))
{
return false;
}
}
return true;
}
public boolean accept(String[] in)
{
int temp = 0;
for(int i = 0; i < in.length ; i++)
{
temp = getEnd(temp, in[i]);
}
if(isFinal(temp))
{
return true;
}
else
return false;
}
private int getEnd(int start , String a)
{
for(int i = 0; i < transNum; i++)
{
if(transitions[i].getStart() == start && transitions[i].getState().equals(a))
{
return transitions[i].getEnd();
}
}
return -1;
}
private boolean isFinal(int in)
{
for(int i = 0; i < finals.length; i++)
{
if(finals[i] == in)
{
return true;
}
}
return false;
}
/*Since it is formed from file, no modifier on private stuff is available*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -