📄 down.java
字号:
import java.io.*;
public class Down{
public String in()throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
if(str.endsWith("#")) return str.substring(0,str.length()-1);
else System.out.println("不是以#结尾的字符串");
return null;
}
public boolean isE(String str)throws IOException{
for(int i=0;i<=str.length();i++)
if(isT(str.substring(0,i))&&isG(str.substring(i,str.length()))) return true;
return false;
}
public boolean isS(String str)throws IOException{
if(str.equals("")) return true;
else if(str.startsWith("*")||str.startsWith("/"))
return isT(str.substring(1,str.length()));
return false;
}
public boolean isT(String str)throws IOException{
for(int i=0;i<=str.length();i++)
if(isF(str.substring(0,i))&&isS(str.substring(i,str.length()))) return true;
return false;
}
public boolean isG(String str)throws IOException{
if(str.equals("")) return true;
else if(str.startsWith("+")||str.startsWith("-")){
for(int i=1;i<=str.length();i++)
if(isT(str.substring(1,i))&&isG(str.substring(i,str.length()))) return true;
}
return false;
}
public boolean isF(String str)throws IOException{
if(str.equals("i")) return true;
else if(str.startsWith("(")&&str.endsWith(")"))
return isE(str.substring(1,str.length()-1));
else return false;
}
public void run()throws IOException{
System.out.println("递归下降分析程序,编制人:汪泳,20050830119,信息安全0501班");
System.out.print("输入一以#结束的符号串(包括+-*/()i#):");
String str=new Down().in();
if(str.equals("")) System.out.print("程序结束");
else if(isE(str)) System.out.print("输出结果:"+str+"#为合法字符串");
else System.out.print("输出结果:"+str+"#为非法字符串");
}
public static void main(String args[])throws IOException{
new Down().run();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -