Java基础(4):正则化表式和Scanner类

2024小米算法岗笔试复盘:高频考点与编程题实战解析 算法岗笔试的核心,往往不是追逐偏题怪题,而是检验基础功底与工程落地能力。数据结构中的KMP模式匹配、堆与并查集,经典算法里的动态规划和贪心策略,以及机器学习中的损失函数与正则化原理,构成了大厂笔试的高频考察维度。理解这些概念的本质,掌握从原理到应用的分析方法,才能在有限时间内高效解题。本文结合2024年小米算法岗第二批笔试的完整复盘,梳理题型结构、知识盲区与编程题AC策略,并从推荐冷启动、模型评估等场景出发,帮助你建立算法岗备考的系统坐标系。 阅读详情

Java安装参考:

https://blog.youkuaiyun.com/Zachcc/article/details/94646514

Java基础(3)

https://blog.youkuaiyun.com/Zachcc/article/details/95041359

Java休眠(sleep)

sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。

你可以让程序休眠一毫秒的时间或者到您的计算机的寿命长的任意段时间。例如,下面的程序会休眠3秒:

实例:

结果:

Java 正则表达式

  1. 正则表达式定义了字符串的模式。
  2. 正则表达式可以用来搜索、编辑或处理文本。
  3. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。

java.util.regex 包主要包括以下三个类:

  1. Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
  2. Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
  3. PatternSyntaxException:PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

实例

捕获组

捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。

例如,正则表达式 (dog) 创建了单一分组,组里包含"d","o",和"g"。

捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:

  1. ((A)(B(C)))
  2. (A)
  3. (B(C))
  4. (C)

可以通过调用 matcher 对象的 groupCount 方法来查看表达式有多少个分组。groupCount 方法返回一个 int 值,表示matcher对象当前有多个捕获组。 还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在 groupCount 的返回值中

正则表达式语法

在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。

  1. Start方法:返回以前匹配的初始索引。
  2. End方法:返回最后匹配字符之后的偏移量。

matches 和 lookingAt 方法

matches 和 lookingAt 方法都用来尝试匹配一个输入序列模式。它们的不同是 matches 要求整个序列都匹配,而lookingAt 不要求。lookingAt 方法虽然不需要整句都匹配,但是需要从第一个字符开始匹配。

  1. matches():尝试将整个区域与模式匹配。
  2. lookingAt():尝试将从区域开头开始的输入序列与该模式匹配。

这两个方法经常在输入字符串的开始使用。

 

 

下面,我们举一个实例关于识别“cat”字符串

replaceFirst 和 replaceAll 方法

  1. replaceAll():替换模式与给定替换字符串相匹配的输入序列的每个子序列。
  2. replaceFirst(): 替换模式与给定替换字符串匹配的输入序列的第一个子序列。

实例

appendReplacement 和 appendTail 方法

  1. appendReplacement():实现非终端添加和替换步骤。
  2. appendTail():实现终端添加和替换步骤。

PatternSyntaxException 类的方法

PatternSyntaxException 是一个非强制异常类,它指示一个正则表达式模式中的语法错误。 PatternSyntaxException 类提供了下面的方法来帮助我们查看发生了什么错误。

Java Scanner 类

下面是创建 Scanner 对象的基本语法:Scanner s = new Scanner(System.in);

接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:

实例:对比一下区别

1.next()方法

2.nextLine()方法

next() 与 nextLine() 区别

next():

  1. 一定要读取到有效字符后才可以结束输入。
  2. 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next() 不能得到带有空格的字符串。

nextLine():

  1. 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  2. 可以获得空白。

主要应用区别就是nextLine可以获得空白。

如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

简单写一个输入求和、平均数的Demo.

Import java.until.Scanner;

 

Class ScannerDemo{

                 Public static void main(String[ ] args){

                         Scanner scan = new Scanner(System.in);

                         double sum = 0;

                         int m = 0;

                         while(scan.hasNextDouble()){

                                 double x = scan.nextDouble();

                                 m = m +1;

                                 sum = sum + x;

                         }

 

System.out.println(m + "个数的和为"+ sum);

System.out.println(m + "个数的平均值是" + (sum / m));

Scan.close();

}

}

 

 

 

2024秋招vivo算法岗笔试复盘:考点拆解与刷题避坑 算法工程师的笔试考核不仅是代码实现,更是对数据结构、基础算法与机器学习理论熟练度的综合检验。以KMP算法为例,理解next数组的推导逻辑,才能真正掌握字符串匹配的高效原理;动态规划则强调状态定义与转移方程的构建,是区分候选人思维深度的关键模块。这些技术能力在真实业务场景中具有直接价值——从海量日志分析到推荐系统特征处理,扎实的算法功底决定了工程落地的效率与稳定性。针对手机厂商算法岗位,笔试往往兼顾深度与广度,既考察排序、二分查找等基本功,也涉及损失函数、过拟合等机器学习概念。掌握系统性的刷题路线与实战策略, 阅读详情

相关推荐

从蓝桥杯真题解析位运算:高低位交换原理与实战应用

位运算是计算机底层数据操作的核心技术,它直接作用于二进制位,实现高效的数据处理。其原理基于与、或、非、异或及移位等基本逻辑操作,通过掩码技术精准提取或设置特定位。在技术价值上,位运算能极大提升程序性能,减少内存占用,是算法优化和系统编程的关键手段。应用场景广泛,包括网络协议解析中的字节序转换、嵌入式系统的寄存器操作、数据压缩加密及高性能算法设计。本文以一道经典的蓝桥杯真题——32位无符号整数的高低16位交换为切入点,深入剖析了掩码操作、移位运算等核心概念,并提供了C++、Java、Python的多语言实现方

weixin_30298497的博客 379

防护 Regular Expression Denial of Service (ReDos):RegEx DoS 扫描器

防护 Regular Expression Denial of Service (ReDos):RegEx DoS 扫描器 在当今的网络安全环境中,防止服务中断变得越来越重要,尤其是由于 Regular Expression Denial of Service(ReDos)攻击引起的中断。ReDos 是一种利用不安全正则表达式实现的服务拒绝攻击,它可以使应用程序在处理特定输入时消耗大量资源,从而...

gitblog_00044的博客 1030

AutoML在神经影像分析中的实战应用与避坑指南

自动机器学习(AutoML)是一种将模型选择、超参数调优与特征工程自动化的系统性方法,其核心原理是通过元学习与交叉验证驱动的搜索空间遍历,实现建模流程的确定性收敛。在脑科学领域,AutoML的技术价值尤为突出——它有效缓解高维小样本、跨中心批效应等固有挑战,显著提升fMRI和EEG数据建模的鲁棒性与可复现性。典型应用场景包括阿尔茨海默病早期分类、帕金森病运动症状预测及自闭症谱系障碍功能连接解析。本文聚焦AutoML在神经影像分析中的落地实践,结合H2O.ai工具链与BIDS标准化流程,详解从数据预处理、模型

GOBY 栏目 470

Java Scanner 类

Java Scanner 类是Java的一个内置类,它提供了一种简便的方式来从标准输入或者文件中读取基本类型和字符串。本文将会详细介绍Java Scanner类的作用以及在实际工作中的用途。

笔记 3536

【信息科学与工程学】【安全领域】 第八十八篇 网络空间安全21

如果员工认为安全政策和流程(如复杂的密码规则、频繁的认证、繁琐的软件安装审批)阻碍了工作效率,他们可能会寻找变通方法,例如:写下密码、共享账户、使用未经批准的云服务(影子IT)、绕过安全控制。例如,一个用于显示用户列表的API,可能返回每个用户的完整个人资料,包括邮箱、地址、电话等敏感字段,而前端可能只显示了姓名。:在OAuth 2.0或OIDC流程中,攻击者可能截获授权请求中的“授权码”,或窃取“访问令牌”,然后将其用于另一个客户端(非原始授权的客户端),从而以用户身份访问受保护的资源。

weixin_49199313的博客 444

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 403

Java 基础——Scanner 类

本文介绍了 Scanner 类相关的知识。

代码星辰的博客 3万+

SAP系统从ECC升级至S/4 HANA的实现路径及项目过程

从SAP ECC升级到 S/4 HANA,通常是一个复杂的转型过程,涉及到企业资源规划系统的全面现代化

saplakes的博客 2903

javaBase(Scanner,常见运算符······)

Scanner: 使用方法 1、首先需要构造一个Scanner类的对象,并且与标准输入流System.in关联 Scanner sc=new Scanner(System.in);

m0_63658317的博客 716

腾讯会议录屏损坏修复:使用 recover_mp4 工具的完整解决方案

腾讯会议录屏损坏修复指南 当腾讯会议录屏因电脑蓝屏等意外导致MP4文件损坏时,可使用recover_mp4工具结合FFMPEG进行修复。操作步骤包括:1)准备相同参数正常视频作为参考;2)分析正常视频生成结构文件;3)分离损坏视频的音视频流;4)使用FFMPEG重新封装。该方法能有效修复因意外中断导致的视频索引损坏问题。修复前需将工具和文件放在同一目录下,并确保参考视频与损坏录屏的参数完全一致。

m0_62498496的博客 2626

强化学习-动态规划

动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略。

qq_45481856的博客 2113

Scanner 正则表达式和输入输出

//扫描器,正则表达式:代表\s匹配空白符 // \S非空白符 //*:0-n个 //空白符:空格,回车,Tab String input = "1 fish 2 fish red fish blue fish"; Scanner sc = new Scanner(input).useDelimiter("\\s*fish\\s*"); System.out.println(sc.nextInt());//1 Sys...

宸宸的博客 594

高缺失率时空数据插补实战:从随机森林到扩散模型的性能对比

数据缺失是数据分析与机器学习建模中普遍面临的挑战,尤其在时空数据领域,传感器故障、传输中断等问题常导致数据不完整。数据插补技术旨在基于已知数据的模式和关联性,合理估算缺失值,为后续分析提供可靠基础。其核心原理在于利用数据的时空相关性(如时间周期性、空间邻近性)及与外部驱动因素(如交通、气象)的关联构建预测模型。这项技术的价值在于能将不完整的数据集转化为可用于高质量分析和预测的可用资产,广泛应用于环境监测、交通流量预测、金融风控等领域。本文聚焦于一个极具挑战性的场景——PM2.5监测数据缺失率高达82%,通过

weixin_30363285的博客 544

csp 2016_4_3 路径解析

public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int p = in.nextInt(); String a = in.nextLine();//读取多余换行符 String str = in.nextLine(); Stri

Unyielding will 496

SpringDoc 基本使用指南

SpringDoc 凭借零配置启动注解简洁和深度兼容 Spring 生态的优势,已成为 Spring Boot API 文档的首选工具。自动化- 减少手动维护文档的成本;标准化- 严格遵循 OpenAPI 3 规范;可扩展- 分组、安全控制灵活适配复杂项目。访问即可查看交互式文档(默认路径)

墨鸦的博客 1万+

无人机飞控算法开发实战:从零到一构建企业级飞控系统

本文系统介绍了无人机飞控算法开发的完整流程,包括飞行动力学模型建立、传感器校准与数据融合、主流控制算法实现(PID、ADRC、EKF)以及企业级飞控系统架构设计。通过结合开源飞控框架(如PX4)和实际工程经验,提供了完整的代码实现示例,帮助学者从零开始掌握无人机飞控开发的核心技术。文中详细讲解了四旋翼无人机的动力学模型、传感器校准方法、EKF状态估计算法、PID和ADRC控制算法的实现,以及MAVLink通信协议的集成。最后,总结了完整的飞控系统开发流程和未来发展趋势。

全栈 3402

飞猪算法岗秋招笔试实战:考点拆解与备考策略全复盘

算法笔试是秋招技术岗筛选的重要关卡,其考察范围往往涵盖数据结构、机器学习基础与编程实战能力。理解KMP算法的next数组推导、贪心策略的排序依据、动态规划的状态转移设计等核心原理,是应对高频题型的关键。这些算法能力不仅服务于在线笔试,更在推荐、搜索、运价预测、运力调度等OTA业务场景中发挥实际价值。结合牛客网笔试环境的特点,掌握输入输出处理、边界条件判断与时间分配技巧,能有效提升得分效率。本文以飞猪算法岗笔试为样本,梳理从题型拆解到复盘路线的完整备考经验,帮助求职者建立系统化的备战框架。

weixin_34378969的博客 295

YOLO11优化:TGRS2026 CKConv结合C3k2 | 方向特征与跨阶段融合协同,小目标漏检率大幅下降

多尺度适配小目标尺寸变化:在 C3k2 不同阶段配置 CKConv 不同核尺度(浅层小核捕获精细纹理,深层大核聚合上下文),兼顾局部细节与全局感知,提升对舰船、车辆等小尺寸目标及红外热目标的检测鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 564

算法岗笔试备战指南:从KMP到动态规划的高频考点拆解

算法笔试是校招技术岗的硬门槛,考察内容往往从基础数据结构与经典算法起步。排序算法、KMP字符串匹配、Dijkstra最短路径、动态规划与贪心策略,构成了笔试中出场率最高的底层知识盘;机器学习与深度学习基础如KNN、聚类、交叉熵与正则化,则常见于选择题与简答题。理解这些算法的原理、复杂度与典型应用场景,不仅是为了通过笔试,更是工程实践中解决商品排序、优惠券最优组合、用户行为序列匹配等真实业务问题的关键。从具体概念出发,掌握算法推导过程与代码实现细节,再结合业务场景进行迁移思考,是系统性提升算法岗应试能力的有效

weixin_34068198的博客 455

如何使用 Python 爬虫获取猫眼电影数据:电影评分与评论分析

随着互联网的快速发展,越来越多的人开始使用各种在线平台来了解电影信息,猫眼电影作为一个非常流行的在线电影票务平台,提供了详细的电影评分、评论和票房数据。本篇博客将详细介绍如何使用 Python 爬虫技术获取猫眼电影平台上的电影数据,重点关注电影评分和用户评论的爬取,分析其背后的数据处理和反爬虫技术。如果你对数据分析、电影评论分析等话题感兴趣,可以根据本文的示例进一步深入挖掘更多的数据,为决策提供支持,或为电影产业的相关研究提供有价值的分析依据。有些猫眼电影的页面数据是动态加载的,使用。

2201_76125261的博客 1623

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

从零实现深度神经网络:用NumPy手写反向传播与梯度下降

深度神经网络是机器学习领域的核心模型,其本质是通过多层非线性变换对复杂数据进行建模。理解其工作原理的关键在于掌握前向传播与反向传播算法,前者负责计算预测输出,后者则通过链式法则计算损失函数对网络参数的梯度。这一过程的技术价值在于,它使得模型能够通过梯度下降等优化算法自动调整权重,从而学习数据中的内在规律。在工程实践中,从零实现神经网络有助于深入理解维度匹配、梯度计算和参数初始化等底层细节,避免成为只会调用框架API的“调包侠”。本文以手写数字识别(MNIST)为应用场景,聚焦于使用纯NumPy实现一个包含隐

weixin_30587927的博客 303

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

2024秋招小米算法岗笔试复盘:从KMP到树形背包的实战指南

算法岗笔试是秋招的重要关卡,扎实的数据结构与算法基础是应对各类编程题的前提。KMP字符串匹配算法和动态规划是笔试中的高频考点,前者考察对next数组推导的准确理解,后者则常以背包问题变形出现,需要掌握状态设计与复杂度优化。深入理解这些经典算法的原理与技术价值,能帮助候选人在有限时间内高效解题。在实际笔试场景中,排序算法稳定性、机器学习理论与深度学习基础也常以选择题形式出现。以2024年小米算法岗第二批笔试为例,完整复盘了从收到通知到交卷的全过程,梳理了KMP、动态规划、树形依赖背包、机器学习、智能优化算法等

weixin_33804582的博客 573

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

2017滴滴秋招算法岗笔试真题解析:高频考点与答题套路

算法岗笔试与纯竞赛刷题不同,更看重将业务问题转化为计算模型的能力。数据结构与算法、机器学习基础、工程思维是考核三大支柱,其中KMP字符串匹配、常见排序算法、贪心与动态规划、概率统计及逻辑回归、SVM等经典模型原理,都是各厂笔试的高频考点。从技术本质出发,KMP通过next数组记录已匹配信息加速字符串匹配,排序算法需明确时间空间复杂度与稳定性差异,而逻辑回归的交叉熵损失、SVM的核函数映射、K-means的收敛特性则直接检验模型理解深度。理解这些基础原理,有助于在实际场景中应对地图路线规划、订单派单、供需预测

weixin_33811539的博客 360

Java Scanner类的常用方法及用法(很详细)

Java Scanner类的方法及用法(很详细) Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除...

码农翻身的博客 28万+

强哥说Java--Java Scanner 类

Java Scanner类Java Scanner 类前言1. 定义2. Scanner 对象创建3. 常用方法3.1 next()及其同伴方法3.1.1 next() 方法3.1.2 同伴方法3.2 hasNext()及其同伴方法4. 实例5. 小结 Java Scanner 类 前言 8/24,Java继续进行 坚持就是胜利 奥里给!!! 一直以来,我们都使用System.out.println()方法向屏幕打印内容,那么如何接收输入的内容呢? 今天说的Scanner类就可以实现对输入内容的接收。

全网粉丝10W+、全栈领域优质创作者、掘金、阿里云等社区博客专家、专注于全栈领域和毕业项目实战 663
上一篇: Java基础(3):数组和异常抛出
下一篇: Java基础(5):方法、Java 流(Stream)
Zachcc
博客等级 码龄9年 2粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值