📄 heyi.java
字号:
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Heyi extends JFrame
{
private JLabel E1Label,E2Label;
private JButton jieguoButton,exitButton;
private JTextField E1Field,E2Field,jieguoField;
String stringE1;
String stringE2;
String output="";
public Heyi()
{
super("求最简单合一者");
Container container=getContentPane();
container.setLayout(new FlowLayout());
E1Label=new JLabel("请输入E1,以空格分隔,如g(h) A H(p)");
container.add(E1Label);
E1Field=new JTextField(20);
container.add(E1Field);
E2Label=new JLabel("请输入E2,以空格分隔,如g(h) A H(p)");
container.add(E2Label);
E2Field=new JTextField(20);
container.add(E2Field);
jieguoButton=new JButton("求最简单合一者UNIFY(E1,E2)");
container.add(jieguoButton);
jieguoField=new JTextField(20);
jieguoField.setEditable(false);
container.add(jieguoField);
exitButton=new JButton("Exit");
container.add(exitButton);
ActionEventHandler handler=new ActionEventHandler();
E1Field.addActionListener(handler);
E2Field.addActionListener(handler);
jieguoButton.addActionListener(handler);
exitButton.addActionListener(handler);
setSize(270,300);
setVisible(true);
}
private class ActionEventHandler implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
if(event.getSource()==exitButton)
System.exit(0);
if(event.getSource()==E1Field)
{
String E1string=event.getActionCommand();
stringE1=E1string;
}
if(event.getSource()==E2Field)
{
String E2string=event.getActionCommand();
stringE2=E2string;
}
if(event.getSource()==jieguoButton)
{
Unify(stringE1,stringE2);
jieguoField.setText(output);
output="";
}
}
}
public String Unify(String E1,String E2)
{
String F1="",T1="",F2="",T2="",G1,G2,Z1="",Z2="";
StringTokenizer tokensE1=new StringTokenizer(E1);
StringTokenizer tokensE2=new StringTokenizer(E2);
if(tokensE1.countTokens()==0) return "";
if(tokensE1.countTokens()!=tokensE2.countTokens())
return output+="FAIL";
if(tokensE1.countTokens()==1&&tokensE2.countTokens()==1&&E1.length()!=1&&E2.length()!=1)
{
if(E1.equals(E2)) return E1+"/"+E2;
else
{
String S1="";
S1+=E1.charAt(0);
String S2="";
S2+=E2.charAt(0);
if(S1.equals(S2))
{
Character c3=new Character(E1.charAt(2));
Character c4=new Character(E2.charAt(2));
if(c3.hashCode()>=97&&c3.hashCode()<=122&&c4.hashCode()>=65&&c4.hashCode()<=90)
{
output+=E2.charAt(2)+"/"+E1.charAt(2)+" ";
return E2.charAt(2)+"/"+E1.charAt(2);
}
else
{
output+=E1.charAt(2)+"/"+E2.charAt(2)+" ";
return E1.charAt(2)+"/"+E2.charAt(2);
}
}
else
{
output+=E2+"/"+E1+" ";
return E2+"/"+E1;
}
}
}
if(tokensE1.countTokens()==1&&tokensE2.countTokens()==1
&&E1.length()!=1&&E2.length()==1)
{
output+=E1+"/"+E2+" ";
return E1+"/"+E2;
}
if(tokensE1.countTokens()==1&&tokensE2.countTokens()==1
&&E1.length()==1&&E2.length()!=1)
{
output+=E2+"/"+E1+" ";
return E2+"/"+E1;
}
if(tokensE1.countTokens()==1&&tokensE2.countTokens()==1&&E1.length()==1&&E2.length()==1)
{
if(E1.equals(E2)) return E1+"/"+E2+" ";
if(E1.charAt(0)>='a'&&E1.charAt(0)<='z')
{
output+=E2+"/"+E1+" ";
return E2+"/"+E1;
}
else
if(E2.charAt(0)>='a'&&E2.charAt(0)<='z')
{
output+=E1+"/"+E2+" ";
return E1+"/"+E2;
}
}
if(tokensE1.countTokens()==tokensE2.countTokens()&&
tokensE1.countTokens()!=1&&tokensE2.countTokens()!=1)
{
StringTokenizer tokensE11=new StringTokenizer(E1);
StringTokenizer tokensE22=new StringTokenizer(E2);
int a=0;
int b=0;
String SE1[]=new String[10];
String SE2[]=new String[10];
while(tokensE11.hasMoreTokens())
{
SE1[a]=tokensE11.nextToken();
a++;
}
while(tokensE22.hasMoreTokens())
{
SE2[b]=tokensE22.nextToken();
b++;
}
String ddd,ttt;
for(int i=0;i<a;i++)
for(int j=0;j<b;j++)
{
ddd="";
ddd+=SE1[i].charAt(0);
ttt="";
ttt+=SE2[j].charAt(0);
if(ddd.equals(ttt))
{
String temp="";
temp=SE2[i];
SE2[i]=SE2[j];
SE2[j]=temp;
}
}
E1="";
E2="";
for(int k=0;k<a;k++)
E1+=SE1[k]+" ";
for(int h=0;h<b;h++)
E2+=SE2[h]+" ";
StringTokenizer tokensE111=new StringTokenizer(E1);
StringTokenizer tokensE222=new StringTokenizer(E2);
F1=tokensE111.nextToken();
while(tokensE111.hasMoreTokens())
T1+=tokensE111.nextToken()+" ";
F2=tokensE222.nextToken();
while(tokensE222.hasMoreTokens())
T2+=tokensE222.nextToken()+" ";
Z1=Unify(F1,F2);
if(Z1.equals("FAIL"))
return "FAIL";
else
{
StringTokenizer tokensZ1=new StringTokenizer(Z1,"/");
String t=tokensZ1.nextToken();
String d=tokensZ1.nextToken();
G1="";
StringTokenizer tokensT1=new StringTokenizer(T1);
String t1;
while(tokensT1.hasMoreTokens())
{
t1=tokensT1.nextToken();
if(d.equals(t1))
G1+=t+" ";
else
G1+=t1+" ";
}
G2="";
StringTokenizer tokensT2=new StringTokenizer(T2);
String t2;
while(tokensT2.hasMoreTokens())
{
t2=tokensT2.nextToken();
if(d.equals(t2))
G2+=t+" ";
else
G2+=t2+" ";
}
Z2=Unify(G1,G2);
if(Z2.equals("FAIL"))
return "FAIL";
}
}
return "";
}
public static void main(String args[])
{
Heyi application=new Heyi();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -