程序题目-实现登陆界面的内容
【程序设计思想】
首先定义字符串登录名,密码,空的字符串,用对话框的形式输入登录名,密码,验证码,随后用if……else判断验证码是否一致,并输出判断结果。
【程序流程图】
【源程序】
//信1605-1 寇肖萌 20163446
import javax.swing.JOptionPane;
public class Randomstr{
public static void main(String args[]) {
String dengluming;
String mima;
dengluming=JOptionPane.showInputDialog("请输入登录名: ");//输入登录名
mima=JOptionPane.showInputDialog("请输入密码: ");//输入密码
//定义一个空字符串
String result = "";
//进行6次循环
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (int)(Math.random() * 26+ 97);
//将intValue强制转换为char类型的字符串
result = result + (char)intVal;
}
//输入验证码
String input=JOptionPane.showInputDialog("验证码: "+result+" "+"请在此输入以上验证码: ");
//判断验证码与输入的是否一致
if(input.equals(result))
{
JOptionPane.showMessageDialog(null,"验证成功!","恭喜您",
JOptionPane.PLAIN_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(null,"验证失败!","很遗憾",
JOptionPane.PLAIN_MESSAGE);
}
}
}
【实现结果截图】
【实验总结】
Java语言中输出字符串时,先随机从97-122的数中随机抽出固定长度的int整数,用intValue强制转换成char类型的字符串,在判断输入的验证码与给出的随机验证码是否一致时,开始用双等号,一直出不来,改成用equals()则能成功判断
原因是因为字符串是对象类型,不能简单的用双等号判断,==判断是根据内存地址来判断,而不同对象即使内容一样,内存地址也不一样,所以不能成功判断,要用A.equals(B)来判断字符串