无符号数的有穷自动机的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理》无符号数的有穷自动机的实现(2007-12-04 15:07:27)
package test;
import java.io.*;
public class Test1 {
public static void main(String args[]){
InputStream input=System.in;
InputStreamReader reader=new InputStreamReader(input);
BufferedReader buf=new BufferedReader(reader);
char num[]=new char[10];
String line=null;
int i,flag;
char ch1,ch2;
while(true){
System.out.println("Please Input Number:");
try{
line=buf.readLine();
}catch(Exception e){
e.printStackTrace();
}
if(line.equals("exit")){
System.out.println("退出");
break;
}
line=line+"$";
num=line.toCharArray();
i=0;
flag=0;
while(num[i]!='$'){
ch1=num[i];
ch2=num[i+1];
if(ch1>='0'&&ch1<='9'){
if((ch2>='0'&&ch2<='9') || ch2=='.' || ch2=='e' || ch2=='$'){
flag=1;
}
else
flag=0;
}
if(ch1=='.'){
if(ch2>='0'&&ch2<='9'||ch2=='$'){
flag=1;
}
else
flag=0;
}
if(ch1=='e'){
if(ch2>='0'&&ch2<='9'||ch2=='+'||ch2=='-'||ch2=='$'){ flag=1;
}
else flag=0;
}
if(ch1=='+'||ch1=='-'){
if(i==0)break;
if(ch2>='0'&&ch2<='9'||ch2=='$'){
flag=1;
}
else flag=0;
}
if(flag==0)break;
++i;
}
if(flag==0){
System.out.println("You have Input a error number!");
i=i+2;
System.out.println("The error number is "+i+" letter!"); }
else
System.out.println("You Input a right number!");
}
if(input!=null){
try{
input.close();
}catch(Exception e){
e.printStackTrace();
}
} }
}