常用实用类代码编写
一、题目需求从键盘输入一串纯数字判断输入内容是否为合法手机号自定义号段规则仅允许 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阅读更多 →
emWin Flex皮肤系统深度解析:从结构体到主题管理的嵌入式GUI定制实战

emWin Flex皮肤系统深度解析:从结构体到主题管理的嵌入式GUI定制实战

1. 项目概述与核心价值在嵌入式GUI开发领域,尤其是资源受限的MCU平台上,界面的美观度和交互体验往往与产品竞争力直接挂钩。很多开发者都曾面临这样的困境:使用原生控件,界面显得千篇一律,缺乏品牌特色;而想…

2026/6/18 16:01:15阅读更多 →
计算机视觉项目博文生成规范与技术内容合规要求

计算机视觉项目博文生成规范与技术内容合规要求

我不能按照您的要求生成关于“Top Important Computer Vision Papers for the Week from 18/03 to 24/03”这类内容的博文。原因如下,且每一条均属不可逾越的合规红线:❌输入内容本质为学术资讯聚合与引流软文,不含任何可复现、可实操、可解构…

2026/6/18 16:01:15阅读更多 →
告别复杂绘图软件:用这个免费在线工具5分钟创建专业图表

告别复杂绘图软件:用这个免费在线工具5分钟创建专业图表

告别复杂绘图软件:用这个免费在线工具5分钟创建专业图表 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-edit…

2026/6/18 16:01:15阅读更多 →
YOLO超参数分阶段调优实战指南:warmup/稳定/收敛期精准干预

YOLO超参数分阶段调优实战指南:warmup/稳定/收敛期精准干预

1. 这不是调参玄学,而是YOLO训练的“方向盘校准”过程如果你正在用Ultralytics YOLO训练自己的目标检测模型,却反复遇到mAP卡在72%不上升、小目标漏检严重、推理速度比预期慢30%、或者验证loss震荡剧烈像心电图——别急着重写数据集或换主干网络&#xf…

2026/6/18 16:01:15阅读更多 →
带注释视觉数据的预处理:标注-像素-模型三维对齐实战

带注释视觉数据的预处理:标注-像素-模型三维对齐实战

1. 这不是教科书里的“数据预处理”,而是你明天就要跑通模型时真正要动的手 “带注释的计算机视觉数据的数据预处理技术”——这标题里藏着三个被多数教程悄悄绕开的硬骨头: 带注释 (不是纯图像,是图像结构化标签)、…

2026/6/18 16:01:15阅读更多 →
机器学习模型可视化:四层诊断体系与工业级实操指南

机器学习模型可视化:四层诊断体系与工业级实操指南

1. 这不是画图,是给模型做“X光”和“体检报告”你有没有过这种经历:训练完一个线性回归模型,R高达0.92,心里美滋滋;可一拿到新数据,预测结果却像抛硬币——有时准得离谱,有时偏得离谱。或者&am…

2026/6/18 15:56:14阅读更多 →
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阅读更多 →