java项目总结4
目录
1.正则表达式
2.爬虫
3.时间
4.包装类
5.工具类之Arrays
6.Lambda
1.正则表达式
用于验证字符串是否满足自己所需要的规则。方法:matches
注意:\在Java中有特殊涵义,是将其它的意思本来化,假设"是用来引用字符串的,但是你如果想要输出它,那是不是就变成了System.out.println(""");那很明显会报错,这需要加上\就行了,将"的意思本来化,就变成了普普通通的"了。正确形式System.out.println("\"");所有在使用上面的\d,\D,\s等等的时候就需要在它前面加上\。
public class aaa2 {public static void main(String[] args) {String r="2161672768";//qq号是9位到10位的,第一个不为0System.out.println(r.matches("[0-9]\\d{8,9}"));}
}
这里的{8,9}表示字符串的后面8个或者9个,也指前面的//d只能出现8次或者9次,因为前面的判断第一个是不是0,用掉了一个字符(【0-9】);
注意:matches(),括号里面的字符串,当然也可以这样。
public class aaa2 {public static void main(String[] args) {String r="2161672768";//qq号是9位到10位的,第一个不为0
// System.out.println(r.matches("[0-9]\\d{8,9}"));String e="[0-9]\\d{8,9}";System.out.println(r.matches(e));}
}
2.爬虫
搜索关键词或者关键句。
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class aaa2 {public static void main(String[] args) {//有如下文本,请按照要求爬取数据。String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,"+ "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";//1.获取正则表达式的对象Pattern p = Pattern.compile("Java\\d{0,2}");//找java,java后面可以有0到2个数字//2.获取文本匹配器的对象,m:文本匹配器的对象,str:大串,p:规则,m要在str中找符合p规则的小串// 拿着m去读取str,找符合p规则的子串Matcher m = p.matcher(str);//3.利用循环获取while (m.find()) {String s = m.group();System.out.println(s);}}
}
结果如下:
拓展1:我们爬虫要爬的数据一般不止一个,matches有很好的解决方法。假设我们要爬虫java\\d{0,2}和c++\\d{0,2}怎么办呢
可以将String r="(java\\d{0,2})|(c++\\d{0,2})",没错中间的|就是你想的那样,类似c的||(或者)功能,在该方法中同样试用。(只有一条|)
拓展2(需求1):String r="java(?=8|11|17)"
?表示java,=表示java后面是否有8或者11或者17,有就爬取,但是这里打印的时候不会将后面的数字打印出来,只会打印java,方式跟之前的一样,只不过规则的字符串变了。
还有将r="((?i)java)(?=8|11|17)"表示忽略java的大小写进行爬取。
拓展3(需求2):String r="((?i)java)(8|11|17)"或者String r="((?i)java)(?:8|11|17)"
拓展4(需求3)String r="((?i)java)(?!8|11|17)
拓展5:贪婪和非贪婪爬取
拓展6:捕获分组和非捕获分组
3.时间
获取当前时间:Date r=new Date(); long time =r.getTime(); 计算现在距离起始时间过了多少毫秒
修改距离起始时间的毫秒值 r.setTime(毫秒值);
long的通常要加上大写或者小写的l,L更加显眼。
该方法打印结果如下:
修改后可运用到项目的如下;(默认)
日期的相关标识符:
自定义时间格式如下:
字符串设置时间格式:(方法中的格式要更字符串一样否则会报错)
4.包装类
包装类(Wrapper Class)在Java中是一种特殊的类,它们用来将基本数据类型包装成对象。主要的包装类有 Integer
、Long
、Float
、Double
、Boolean
、Character
、Byte
和 Short,分别对应基本数据类型int,long,float,double,boolean,char,byte,short。在后序的集合和Map中有相关例子。
作用:
1.将基本数据类型转换为对象
2.提供了方法来操作基本数据类型
3.支持泛型编程
4.提供了常量和静态方法
5.实现了一些接口
6.自动装箱和拆箱
装箱指将基本数据类型转换成包装对象,拆箱指将包装对象转换成基本数据练习。自动指他们创建出来后,在使用时,底层逻辑会自动转化,不需要自己手动转化。
5.工具类之Arrays
6.Lambda
Lambda 表达式使得 Java 语言在编程风格上更加现代化和函数式,提升了代码的简洁性、可读性和并行处理的能力,是 Java 8 版本中一个重要的语言特性。
注意:
1.Lambda表达式可以用来简化匿名内部类的书写
2.Lambda表达式只能简化函数式接口的匿名内部类的写法
3.函数式接口:有且仅有有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionalInterface注解
Lambda的简写例子如下:
import java.util.Arrays;
import java.util.Comparator;public class test {public static void main(String[] args) {//初识lambda表达式Integer[] arr1 = {3, 8, 5, 7, 9, 1, 4, 2};Integer[] arr2 = {3, 8, 5, 7, 9, 1, 4, 2};Arrays.sort(arr1,new Comparator<Integer>() {public int compare(Integer o1, Integer o2) {return o2-o1;}});System.out.println(Arrays.toString(arr1));Arrays.sort(arr1, (Integer o1, Integer o2) -> {return o1 - o2;});System.out.println(Arrays.toString(arr1));Arrays.sort(arr2, (o1, o2) -> o1 - o2);System.out.println(Arrays.toString(arr2));}
}
结果如下:
为了保证Lambda表达式的目标类型是一个明确的函数式接口,有如下三种常用方式;
1.将Lambda表达式赋值给函数式接口类型的变量。
2.将Lambda表达式作为函数式接口类型的参数传给某个方法。
3.使用函数式接口等Lambda表达式进行强制转换。
可以运行:
//Ring接口中只包含一个无参数的方法
//Lambda表达式代表的匿名方法实现了Ring接口唯一的,无参数的方法
//因此下面的Lambda表达式创建了一个Ring的对象
Ring r=()->{
for(int i=0;i<=100;i++)
System.out.println();
}
无法运行:
Objext r=()->{
for(int i=0;i<=100;i++)
System.out.println();
}
因为Object不是函数式接口,想要强制转换,前提是他们类型一直,如参数, 返回值
Object r=(Ring)()->{
for(int i=0;i<=100;i++)
System.out.println();
}
相关文章:

java项目总结4
目录 1.正则表达式 2.爬虫 3.时间 4.包装类 5.工具类之Arrays 6.Lambda 1.正则表达式 用于验证字符串是否满足自己所需要的规则。方法:matches 注意:\在Java中有特殊涵义,是将其它的意思本来化,假设"是用来引…...
JavaScript中的数组方法总结+详解
##JavaScript中的数组方法总结详解 用来总结和学习,便于自己查找 文章目录 一、数组是什么? 二、改变原数组的api方法? 2.1 push() 在末端添加 2.2 pop࿰…...
环境变量Path
PATH 是一个环境变量,它在操作系统中扮演着非常重要的角色。它定义了系统在查找可执行文件时应该搜索的目录列表。当你在命令行中输入一个命令时,操作系统会按照 PATH 变量中定义的目录顺序来查找这个命令对应的可执行文件。 主要作用 查找可执行文件&a…...

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(四)支持json和xml的显示
因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 1、相应的界面前端代码 <template><div class"formDesign"><FlowDesign :process"process" :fields"fields" :readOnly"readOnly&quo…...
【k8s安装redis】k8s安装单机版redis实现高性能高可用
文章目录 简介一.条件及环境说明:二.需求说明:三.实现原理及说明四.详细步骤4.1.创建configmap 配置文件4.2.创建StatefulSet 配置4.3.创建service headless 配置 五.安装说明 简介 本文将根据在k8s环境中搭建【伪】单机模式的redis实例。由于共享存储的…...
Scala 数据类型
Scala 数据类型 Scala 是一种多范式的编程语言,它结合了面向对象和函数式编程的特点。在 Scala 中,数据类型是构建复杂程序的基础。本文将详细介绍 Scala 中的数据类型,包括其分类、特点以及使用方法。 数据类型分类 Scala 中的数据类型可…...
Java Executors类的9种创建线程池的方法及应用场景分析
在Java中,Executors 类提供了多种静态工厂方法来创建不同类型的线程池。在学习线程池的过程中,一定避不开Executors类,掌握这个类的使用、原理、使用场景,对于实际项目开发时,运用自如,以下是一些常用的方法…...
LY/T 3359-2023 耐化学腐蚀高压装饰层积板检测
耐化学腐蚀高压装饰层积板是指用酚醛树脂浸渍的层状植物纤维材料为基材,与涂布以丙烯酸树脂为主体的装饰纸的饰面层,在高温高压下层积压制而成的具有化学腐蚀功能的高压装饰层积板。 LY/T 3359-2023 耐化学腐蚀高压装饰层积板检测项目: 测试…...
【linux/shell】如何创建脚本函数库并在其他脚本中调用
目录 1. 创建脚本库文件 2. 修改脚本库权限,使脚本库可执行 3. 在其他脚本中调用脚本库 4. 使用环境变量或.bashrc 5. 使用Shellcheck 6. 编写注释及说明文档 在Shell中创建和使用脚本库通常涉及以下几个步骤: 1. 创建脚本库文件 脚本库通常是包…...

Instruct-GS2GS:通过用户指令编辑 GS 三维场景
Paper: Instruct-GS2GS: Editing 3D Gaussian Splats with Instructions Introduction: https://instruct-gs2gs.github.io/ Code: https://github.com/cvachha/instruct-gs2gs Instruct-GS2GS 复用了 Instruct-NeRF2NeRF 1 的架构,将基于 NeRF 的三维场景编辑方法迁…...

disql使用
SQL 交互式查询工具 | 达梦技术文档 进入bin目录:cd /opt/dmdbms/bin 启动disql:./disql,然后输入用户名、密码 sh文件直接使用disql: 临时添加路径到PATH环境变量:在当前会话中临时使用disql命令而无需每次都写完整…...
SpringBoot Mybatis-Plus 日志带参数
SpringBoot Mybatis-Plus 日志带参数 1 实现代码2 测试结果 在Spring Boot中,MyBatis插件机制通过拦截器(Interceptor)来实现。拦截器允许开发人员在执行SQL语句的各个阶段(如SQL语句创建、参数处理、结果映射等)插入自…...

【WebGIS平台】传统聚落建筑科普数字化建模平台
基于上述概括出建筑单体的特征部件,本文利用互联网、三维建模和地理信息等技术设计了基于浏览器/服务器(B/S)的传统聚落建筑科普数字化平台。该平台不仅实现了对传统聚落建筑风貌从基础到复杂的数字化再现,允许用户轻松在线构建从…...

Zookeeper分布式锁原理说明【简单易理解】
Zookeeper 非公平锁/公平锁/共享锁 。 1.zookeeper分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下,性能会下降的比较厉害,主要原因是,所有的连接都在对同一个节点进行监听,当服务器检测到删除事件时,要通知…...

去除Win32 Tab Control控件每个选项卡上的深色对话框背景
一般情况下,我们是用不带边框的对话框来充当Tab Control的每个选项卡的内容的。 例如,主对话框IDD_TABBOX上有一个Tab Control,上面有两个选项卡,第一个选项卡用的是IDD_DIALOG1充当内容,第二个用的则是IDD_DIALOG2。I…...

iis部署前后端分离项目(React前端,Node.js后端)
iis虽然已经有点过时,但不少用户还在用,故总结一下。 1. 安装iis 如果电脑没有自带iis管理器,打开控制面板->程序->启用或关闭Windows功能,勾选iis安装即可 2. 部署前端项目 打开iis,添加网站,物理…...

【前端项目笔记】9 数据报表
数据报表 效果展示: 在开发代码之前新建分支 git checkout -b report 新建分支report git branch 查看分支 git push -u origin report 将本地report分支推送到云端origin并命名为report 通过路由的形式将数据报表加载到页面中 渲染数据报表基本布局 面包屑导航…...
等保测评推动哈尔滨数字化转型中的安全保障
在数字经济的浪潮下,哈尔滨作为东北老工业基地的核心城市,正积极推动数字化转型,以创新技术驱动产业升级和经济发展。网络安全等级保护测评(简称“等保测评”)作为国家网络安全战略的重要组成部分,为哈尔滨…...
#pragma 指令
#pragma 指令作用是设定编译器的状态或者是指示编译器完成一些特定的动作 message 参数能够在编译信息输出窗口中输出相应的信息 #pragma message(“消息文本”) code_seg参数能够设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它 #pragma…...

【Excel】 批量跳转图片
目录标题 1. CtrlA全选图片 → 右键 → 大小和属性2. 取消 锁定纵横比 → 跳转高度宽度 → 关闭窗口3. 最后一图拉到最后一单元格 → Alt吸附边框4. CtrlA全选图片 → 对齐 → 左对齐 → 纵向分布!…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...