Java学习——100、判断回文字符串
回文字符串:即字符串“从前向后读”和“从后向前读”都相同。
算法并不难,用循环,将字符串的第0个和最后一个比较,第1个和倒数第二个比较,到中间数字为止,都相等则为回文字符串,反之,则不是。
其完整代码如下:
package la;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
public class Huiwen extends JFrame implements ActionListener{
private JTextField text;
private JButton button;
public Huiwen() {
super("回文判断");
this.setVisible(true);
this.setSize(300,100);
this.setLocationRelativeTo(null);
JPanel top=new JPanel();
this.getContentPane().add(top,"North");
top.add(new JLabel("请输入字符串:"));
text=new JTextField(10);
top.add(text);
button=new JButton("是否回文?");
this.getContentPane().add(button);
button.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自动生成的方法存根
String s=text.getText();
if(s=="") {
new Panduan("您未输入任何数据");
this.dispose();
}
else {
String s1="";
int i,j;
for(i=0,j=s.length()-1;i<s.length()/2;i++,j--) {
if(s.charAt(i)==s.charAt(j))
continue;
else {
s1=s+"不是回文";
break;
}
}
if(i==j||i==s.length()/2)
s1=s+"是回文";
new Panduan(s1);
this.dispose();
}
}
}
class Panduan extends JFrame implements ActionListener{
private JButton b1,b2;
private JLabel l;
public Panduan(String s) {
super("判断");
this.setVisible(true);
this.setSize(200,100);
this.setLocationRelativeTo(null);
this.setLayout(new FlowLayout());
this.getContentPane().add(new JLabel(s));
b1=new JButton("确定");
b1.addActionListener(this);
this.getContentPane().add(b1);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自动生成的方法存根
this.dispose();
new Huiwen();
}
public static void main(String args[]) {
new Huiwen();
}
}
其运行结果为:
输入字符串后: