Java 实例 - 在控制台上输入密码要求其数字和字母混搭等长度限制(Pattern正则表达式)

news2025/3/1 14:19:34






1.在控制台上输入密码,要求密码由数字和字母混搭,关键词是_,且密码的长度至少1位,不得超过6位



package com.guyu.demo;

import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * 
 * 2024年4月11日 上午9:57:40
 * @author Guyu
 *  Pattern 表达式正则示例:
 *  在控制台上输入密码,要求密码由数字和字母混搭,关键词是_,且密码的长度至少1位,不得超过6位
 *
 */
public class PassWord041101 {
	  public static void main(String[] args) {
	        Scanner scanner = new Scanner(System.in);
	        System.out.println("请输入密码:");
	        String password = scanner.nextLine();

	        if (isValidPassword(password)) {
	            System.out.println("密码有效!");
	        } else {
	            System.out.println("【警告】密码无效,请确保密码:");
	            System.out.println("1. 包含数字和字母混搭");
	            System.out.println("2. 包含关键词\"_\"");
	            System.out.println("3. 长度至少1位");
	            System.out.println("4. 不超过6位");
	        }
	    }

	    private static boolean isValidPassword(String password) {
	        if (password.length() < 1 || password.length() > 6) {
	            return false;
	        }
	        
	        /**
	         * 说明:
	         *  (?=.*[a-zA-Z]) 确保密码中至少有一个字母(无论大小写)。
	         *  (?=.*\\d) 确保密码中至少有一个数字。
	         *  (?=.*_) 确保密码中包含关键词"_"。
	         *  .+ 确保密码长度至少为1位。
	         *  ^ 和 $ 分别匹配字符串的开始和结束,确保整个字符串都符合正则表达式的要求。
	         */
	        Pattern pattern = Pattern.compile("^(?=.*[a-zA-Z])(?=.*\\d)(?=.*_).+$");
	        return pattern.matcher(password).matches();
	    }
}



  • 随机输入后打印结果:

故屿

  • 按要求随机输入后打印结果:

故屿




2.在控制台上输入昵称, 要求昵称由字母和数字混搭,需第一个位置只能是字母,且昵称的长度至少3位,不得超过10位



package com.guyu.demo;

import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * 
 * 2024年4月11日 上午10:29:40
 * @author Guyu
 * Pattern 表达式正则示例:
 * 	用Java编写在控制台上输入昵称, 要求昵称由字母和数字混搭,
 * 	第一个位置只能是字母且昵称的长度至少3位,不得超过10位
 *
 */
public class InputName041102 {
	public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入昵称:");
        String nickname = scanner.nextLine();

        if (isValidNickname(nickname)) {
            System.out.println("昵称有效!");
        } else {
            System.out.println("【警告】昵称无效,请确保昵称:");
            System.out.println("1. 第一个字符是字母");
            System.out.println("2. 包含字母和数字混搭");
            System.out.println("3. 长度至少为3位");
            System.out.println("4. 不超过10位");
        }
    }

    private static boolean isValidNickname(String nickname) {
        if (nickname.length() < 3 || nickname.length() > 10) {
            return false;
        }

        // 检查第一个字符是否是字母
        if (!Character.isLetter(nickname.charAt(0))) {
            return false;
        }

        /**
         * 检查剩余的字符是否包含字母和数字混搭:
         * 	^ 表示字符串的开始。
         * 	(?=.*[a-zA-Z]) 是一个前视断言,确保字符串中至少有一个字母。
         *  (?=.*\\d) 是另一个前视断言,确保字符串中至少有一个数字。
         *  [a-zA-Z\\d]+ 确保剩余的字符是字母或数字,并且至少有一个这样的字符。
         *  $ 表示字符串的结束。
         */
        Pattern pattern = Pattern.compile("^(?=.*[a-zA-Z])(?=.*\\d)[a-zA-Z\\d]+$");
        return pattern.matcher(nickname).matches();
    }
}



  • 随机输入后打印结果:

故屿

  • 按要求随机输入后打印结果:

故屿





总之,使用 Pattern 正则匹配常用于日常上手机号、身份证号、邮箱、QQ、验证码等多场景









Note:
欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
感谢您在浩瀚的网络世界中精心阅读了此篇文章
衷心希望此文能给您带来帮助
没有个性 哪来的签名!
详情请关注点我
持续更新中

扫一扫 有惊喜!
© 2024 04 - Guyu.com | 【版权所有 侵权必究】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1584907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FPGA开源项目分享——基于 DE1-SOC 的 String Art 实现

导语 今天继续康奈尔大学FPGA课程ECE 5760的典型案例分享——基于DE1-SOC的String Art实现。 &#xff08;更多其他案例请参考网站&#xff1a; Final Projects ECE 5760&#xff09; 1. 项目概述 项目网址 ECE 5760 Final Project 项目说明 String Art起源于19世纪的数学…

显示学习4(基于树莓派Pico) -- 游戏

来自&#xff1a;https://github.com/zelacerda/micropython 代码改造了一下&#xff0c;让它可以跑起来。 简单分析一下代码。外层是一个死循环&#xff0c;有一个状态机来对应不同的场景。 def loop():while True:if state 0: splash_screen()elif state 1: game_waiti…

【uniapp】省市区下拉列表组件

1. 效果图 2. 组件完整代码 <template><view class="custom-area-picker"><view

Day:006(1) | Python爬虫:高效数据抓取的编程技术(爬虫工具)

selenium介绍与安装 Selenium是一个Web的自动化测试工具&#xff0c;最初是为网站自动化测试而开发的&#xff0c;类型像我们玩游戏用的按键精灵&#xff0c;可以按指定的命令自动操作&#xff0c;不同是Selenium 可以直接运行在浏览器上&#xff0c;它支持所有主流的浏览器&am…

idea如何debug看springsecurity的过滤器顺序

idea如何debug看springsecurity的过滤器顺序 先配置一个Spring启动对象,后续需要根据这个对象来获取SpringSecurity的过滤器链 设置一个输出信息&#xff0c;需要在输出信息这里打上断点&#xff0c;才方便查看过滤器链 public static void main(String[] args) {//此时不…

[opencv]VideoWriter写出fourcc格式

fourcc支持的格式 fourcc全名Four-Character Codes&#xff0c;四字符代码&#xff0c;该编码由四个字符组成 cv2.VideoWriter_fourcc(O,O,O,O) cv2.VideoWriter_fourcc(*OOOO) 通常写法有上述两种形式&#xff0c;O代表一个字符&#xff0c;通常有 支持avi格式的有&#…

LeetCode 142.环形链表II(数学公式推导)

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整…

C语言中的数据结构--链表的应用1(2)

前言 上一节我们学习了链表的概念以及链表的实现&#xff0c;那么本节我们就来了解一下链表具体有什么用&#xff0c;可以解决哪些实质性的问题&#xff0c;我们借用习题来加强对链表的理解&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习 单链表相关经典算法O…

配置及第三方授权申请教程

项目需要配置的地方不多&#xff0c;主要就两个地方需要注意&#xff1a;邮箱授权和第三方授权需要提前申请 1.基本设置 1.1 打开application.yml&#xff0c;修改数据库ip等基本信息 这些基本的配置就不多说了&#xff0c;基本就是改下服务器ip和账号密码什么的 1.2 获取QQ…

WebGIS实现各地区COVID-19数据一览

1.项目地址 GISpjd/WebGIS-Show-Covid19 (github.com)&#xff0c;具体每个文件的职能可以参考README文档。 2.前言 预览 >> 所用技术栈&#xff1a; 项目需求本身不是过于复杂&#xff0c;所以没有在相应前端框架下完成&#xff0c;但转入框架也是比较容易的 &#…

DJ-D500/0.5机械式隔膜计量泵

一、DJ-D500/0.5机械式隔膜计量泵概述&#xff1a;DJ-D500/0.5机械式隔膜计量泵是一款设计精良、结构紧凑的计量设备&#xff0c;专为精确输送和计量各种化学液体而设计。该泵采用先进的机械驱动机制&#xff0c;能够确保在各种工作压力下都能实现高精度的流量控制。 二、技术特…

Transformer模型-数据预处理,训练,推理(预测)的简明介绍

Transformer模型-数据预处理&#xff0c;训练&#xff0c;推理&#xff08;预测&#xff09;的简明介绍 在继续探讨之前&#xff0c;假定已经对各个模块的功能有了充分的了解&#xff1a; 人工智能AI 虚拟现实VR 黑客帝国_Ankie&#xff08;资深技术项目经理&#xff09;的博客…

Vue2创建过程记录

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、搭建node二、安装Vue CLI三、搭建新项目四、Elemet安装&#xff08;参照官网步骤[Element官网](https://element.eleme.cn/#/zh-CN/component/installation)&am…

2024年安卓轮播图代码+定时翻页(全网代码最少实现)

2024年安卓轮播图代码定时翻页 asda 这里是Fragment子类的继承如果使用 AppCompatActivity请修改一下很简单的如果又看不懂的话可以访问使用我的gpt&#xff1a;https://0.00000.work/ 免费3.5的 直接吧代码扔给他然后和他说帮忙解释一下每一行作用 Integer[] data{R.drawab…

Nexpose v6.6.245 for Linux Windows - 漏洞扫描

Nexpose v6.6.245 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, Release Apr 03, 2024 请访问原文链接&#xff1a;Nexpose v6.6.245 for Linux & Windows - 漏洞扫描&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&…

JVM字节码与类的加载——class文件结构

文章目录 1、概述1.1、class文件的跨平台性1.2、编译器分类1.3、透过字节码指令看代码细节 2、虚拟机的基石&#xff1a;class文件2.1、字节码指令2.2、解读字节码方式 3、class文件结构3.1、魔数&#xff1a;class文件的标识3.2、class文件版本号3.3、常量池&#xff1a;存放所…

Vue笔记 2

数据代理 数据代理&#xff1a;通过一个对象代理对另一个对象中属性的操作&#xff08;读/写&#xff09; let obj{x:100} let obj2{y:200} Object.defineProperty(obj2,x,{get(){return obj.x},set(value){obj.x value} })Vue中的数据代理 Vue中的数据代理&#xff1a; 通…

cesium 添加动态波纹效果 圆形扩散效果 波纹材质

一、扩展材质 /*** 水波纹扩散材质* param {*} options* param {String} options.color 颜色* param {Number} options.duration 持续时间 毫秒* param {Number} options.count 波浪数量* param {Number} options.gradient 渐变曲率*/function CircleWaveMaterialProperty(opt…

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-回铃音补偿

文章目录 前言联系我们解决问题操作步骤 前言 回铃音&#xff1a; 当别人打电话给你时&#xff0c;你的电话响铃了&#xff0c;而他听到的声音叫做回铃音。回铃音是被叫方向主叫方传送&#xff0c;也是彩铃功能的基础。我们平时打电话听到的“嘟 嘟 嘟 嘟”的声音&#xff0c;就…