随机生成4位验证码,由用户输入并验证是否输入正确,如果输入错误就生成新的验证码让用户重新输入,最多输入5次...

package liu0914;

import java.util.Random;
import java.util.Scanner;

public class Yanzhengma {

	public static void main(String[] args) 
	{
		String str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		char[]arr=new char[4];//定义一个长度是4的char型数组
		Random sj=new Random();
		System.out.println("验证码是:");
		for(int i=0;i<4;i++)
		{
			arr[i]=str.charAt(sj.nextInt(61));//从str中随机截取4个单个字符并赋值给arr这个数组存放
		}
		System.out.println(arr);
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入验证码");
		
		String a=new String(arr);//把数组转换成字符串
		//定义输入次数
		for(int j=0;j<5;j++)
		{
			if(sc.nextLine().equals(a))
			{
				
				System.out.println("验证码输入正确");
			
			}
			else
			{
				System.out.println("验证码输入有误,请重新输入");
				if(j<=3)
				{
					
				
					System.out.print("请输入验证码");
					for(int i=0;i<4;i++)
					{
						arr[i]=str.charAt(sj.nextInt(61));//从str中随机截取4个单个字符并赋值给arr这个数组存放
					}
					System.out.println(arr);
					a=new String (arr);
					
				}
				else
				{
					System.out.println("输入有误,对不起,5次机会已用完");
				}
			}
		}
		
		
	}

}

  

 

转载于:https://www.cnblogs.com/liuyanzeng/p/5875251.html

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!谢谢您的问题。这是一个技术类的问题,属于我的能力范围之内,我可以为您提供答案。针对您的需求,可以使用Java的Random和StringBuilder类来实现。具体而言,您可以使用Random生成一个随机数,再根据这个随机数对字母和数字进行随机选择,最终得到一个包含字母和数字的随机字符串。然后将此字符串保存到一个变量中,让用户输入之后进行比对。如果用户输入正确,则验证通过;否则,重新生成一个随机字符串,让用户继续输入。您可以使用循环来实现最多输入5的限制。具体实现方式可以参考以下Java代码: ``` import java.util.*; public class VerificationCode { public static void main(String[] args) { Scanner input = new Scanner(System.in); int maxTries = 5; int tries = 0; String expectedCode = getRandomCode(); while (tries < maxTries) { System.out.print("请输入验证码(包含大小写字母和数字):" + expectedCode + ":"); String enteredCode = input.nextLine(); if (enteredCode.equals(expectedCode)) { System.out.println("验证通过!"); break; } System.out.println("输入错误,请重新输入!"); tries++; if (tries == maxTries) { System.out.println("您已经连续输入错误" + maxTries + ",无法再尝试。"); } else { expectedCode = getRandomCode(); } } } private static String getRandomCode() { String source = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 4; i++) { int index = random.nextInt(source.length()); sb.append(source.charAt(index)); } return sb.toString(); } } ``` 希望这个回答能够帮助您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值