无符号数的有穷自动机的实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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();

}

} }

}

相关文档
最新文档