常用实用类代码编写
一、题目需求从键盘输入一串纯数字判断输入内容是否为合法手机号自定义号段规则仅允许 137、138、139 开头手机号总长度固定为 11 位。题目没有强制限定实现方式我自主拓展正则表达式完成匹配校验作为程序优化亮点。二、完整解题思路1. 基础需求拆解输入部分使用Scanner工具类读取控制台输入的字符串基础校验规则整体长度必须等于 11 位前三位只能是 137、138、139剩余 8 位必须全部是数字输出逻辑符合规则输出「合法手机号」不满足任意一条则输出「号码错误」。2. 两种实现思路对比思路一基础 if 分段判断不借助正则纯字符串基础方法实现校验步骤判断字符串长度是否等于 11截取前 3 位子串判断是否等于137/138/139循环截取后 8 位每一个字符判断是否全部为数字全部满足则号码合法任一条件不满足直接判定错误。优点逻辑直白、新手易理解缺点代码冗长多层 if 嵌套拓展新号段时修改麻烦。思路二正则表达式匹配自主拓展优化亮点Java 字符串自带matches()方法支持正则全局匹配一行代码完成全部规则校验。正则表达式解析^1[3789]\\d{8}$^匹配字符串开头保证第一位固定为 1[3789]第二位只能是 3、7、8、9组合出 137/138/139 开头\\d{8}匹配 8 个 0-9 数字补足 11 位总长$匹配字符串结尾杜绝多余字符。优点代码极度简洁校验规则集中在一处后续新增号段仅修改正则即可缺点需要理解正则语法属于课本之外自主拓展知识点。3. 程序完整执行流程导入java.util.Scanner实现控制台输入主方法内创建 Scanner 对象提示用户输入手机号读取输入字符串调用matches()结合正则完成一次性校验根据匹配布尔结果打印对应提示关闭 Scanner 释放输入流资源。三、完整示例代码方案二 自主拓展正则版四、运行测试说明以截图测试用例137000举例输入仅 6 位长度不足 11正则匹配失败控制台输出「号码错误」和运行截图结果完全一致。五、实验心得体会1. 基础知识点收获本次程序练习巩固了 Java 字符串操作、Scanner 控制台输入、分支判断等基础语法。最开始我先用多层 if 判断完成基础功能完全贴合题目无额外要求的原始解法能清晰拆分长度、号段、数字三层校验逻辑吃透了substring()截取、charAt()取字符、字符串长度判断等基础 API。2. 自主拓展正则的学习亮点感悟题目没有规定实现方式我主动查阅资料引入正则表达式作为优化方案是本次实验最大收获正则把多条分散的校验规则整合到一行表达式代码量大幅精简可读性更高原本二三十行的多层 if 判断压缩为一句matches()匹配维护成本大幅降低拓展号段时修改成本极低如果后续新增 130、131 号段只需要修改[3789]为[301789]不用新增多层 if 条件学会了^、$、\\d、字符集合这类基础正则语法理解了 Java 中转义符需要双反斜杠\\的特殊规则掌握了字符串matches()全局匹配的底层逻辑属于课本之外主动拓展的实用工具知识。3. 踩坑调试总结正则书写失误最初漏写^和$边界符输入13812345678999超长数字也会判定合法补上首尾匹配符后才严格限制整体长度转义符错误直接写\d编译器报错Java 字符串中反斜杠需要二次转义必须写成\\d输入容错问题使用next()读取输入遇到空格会截断后续可以优化为nextLine()适配带空格的异常输入资源释放写完校验逻辑后差点忘记sc.close()养成关闭 IO 输入流、释放资源的良好编码习惯。4. 整体学习感悟这道手机号校验题虽然逻辑简单但让我体会到同一需求存在多种实现方案基础 if 适合新手理解底层逻辑正则适合工程化简洁开发。在题目无强制限制的前提下主动拓展正则表达式不仅简化了代码还自主学习了新知识点。编程不只是完成题目要求更可以主动思考优化方案在基础需求之上拓展更高效、易维护的写法长期坚持这种思路能大幅提升代码编写能力。同时调试过程中遇到的正则语法 bug、长度判断漏洞也锻炼了自己排查问题、查阅资料解决问题的自主学习能力。

相关新闻

解决“413 Payload Too Large”:截图数据包过大时的配置优化

解决“413 Payload Too Large”:截图数据包过大时的配置优化

“同一个会话里截了十几张图,突然所有请求都返回 413 了……” “前几次截图好好的,截到第 28 张就彻底卡死,会话直接废了……” “更崩溃的是,截图保存在会话文件里,删又删不掉,整个会话只能废弃……” …

2026/6/18 7:31:08阅读更多 →
Jumanji环境生成器使用教程:从随机迷宫到复杂TSP问题

Jumanji环境生成器使用教程:从随机迷宫到复杂TSP问题

Jumanji环境生成器使用教程:从随机迷宫到复杂TSP问题 【免费下载链接】jumanji 🕹️ A diverse suite of scalable reinforcement learning environments in JAX 项目地址: https://gitcode.com/gh_mirrors/ju/jumanji Jumanji是一个基于JAX的高性…

2026/6/18 7:31:08阅读更多 →
我们如何在 Elasticsearch 上构建一个持久 agent 记忆层,实现 0.89 召回率和零租户泄漏

我们如何在 Elasticsearch 上构建一个持久 agent 记忆层,实现 0.89 召回率和零租户泄漏

作者:来自 Elastic Noam Schwartz 发现基于 Elasticsearch 构建的持久化、多租户 agent 记忆层架构:三个索引、结合 RRF 和重排序器的混合检索、supersession、衰减机制以及按用户的 DLS(Document-Level Security) 隔离。在 168 个…

2026/6/18 7:26:07阅读更多 →
Three.js 3D 渲染与赛博朋克风格 UI:从几何体到着色器,Web 端的视觉革命

Three.js 3D 渲染与赛博朋克风格 UI:从几何体到着色器,Web 端的视觉革命

Three.js 3D 渲染与赛博朋克风格 UI:从几何体到着色器,Web 端的视觉革命 一、Web 3D 的性能困境:GPU 不是无限的 Three.js 让 Web 端 3D 渲染成为可能,但浏览器环境的 GPU 资源远不如原生应用充裕。移动端 GPU 的显存通常只有 2-…

2026/6/18 8:51:19阅读更多 →
ComfyUI ControlNet Aux预处理器终极指南:从零配置到高效使用的完整解决方案

ComfyUI ControlNet Aux预处理器终极指南:从零配置到高效使用的完整解决方案

ComfyUI ControlNet Aux预处理器终极指南:从零配置到高效使用的完整解决方案 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 还在为AI绘画中难…

2026/6/18 8:51:19阅读更多 →
使用 Ventoy 安装WinToGo (萝卜头论坛WTG工具)

使用 Ventoy 安装WinToGo (萝卜头论坛WTG工具)

萝卜头论坛WTG工具下载地址: https://bbs.luobotou.org/bstra/thread-761-1-1.html 参考视频 https://www.bilibili.com/video/BV1gP41167qr 一、解压安装包 二、准备好ISO镜像文件 之前我们已经装好了win11,这里演示win10的安装流程,win…

2026/6/18 8:51:19阅读更多 →
3分钟掌握Sketch MeaXure:设计师与开发者的终极标注协作工具

3分钟掌握Sketch MeaXure:设计师与开发者的终极标注协作工具

3分钟掌握Sketch MeaXure:设计师与开发者的终极标注协作工具 【免费下载链接】sketch-meaxure 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-meaxure 在UI设计工作流中,从设计稿到开发实现的转化往往存在巨大的信息鸿沟。Sketch MeaXure…

2026/6/18 8:51:19阅读更多 →
centos7离线安装vsftpd

centos7离线安装vsftpd

1.安装 rpm包下载参考地址阿里云开源镜像站资源目录 rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm 2.配置用户 #添加用户 adduser MyFtp22 #设置用户密码 passwd MyFtp22 #键入两遍密码,自行记录好密码(此处本人键入了MyFtp22) #创建目录 mkdi…

2026/6/18 8:51:19阅读更多 →
BIThesis 3.7.0版本发布:快速响应北京理工大学研究生学位论文新规

BIThesis 3.7.0版本发布:快速响应北京理工大学研究生学位论文新规

BIThesis 3.7.0版本发布:快速响应北京理工大学研究生学位论文新规 【免费下载链接】BIThesis 📖 北京理工大学非官方 LaTeX 模板集合,包含本科、研究生毕业设计模板及更多。🎉 (更多文档请访问 wiki 和 release 中的手…

2026/6/18 8:46:18阅读更多 →
ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

1. ZigBee HA:智能家居的“通用语言”与开发基石如果你正在或计划踏入智能家居设备开发领域,尤其是基于ZigBee协议,那么“ZigBee Home Automation”这个名词你一定不陌生。它不仅仅是ZigBee联盟定义的一套应用层规范,更是确保不同…

2026/6/18 0:00:24阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 0:00:24阅读更多 →
JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

1. 项目概述在嵌入式开发领域,尤其是基于NXP JN517x这类无线微控制器的项目中,系统稳定性和与外设的可靠交互是两大核心挑战。前者关乎产品能否在无人值守的复杂环境中长期运行,后者则决定了设备能否准确感知世界并与其他芯片“对话”。JN517…

2026/6/18 0:00:24阅读更多 →