java 第10天 String创建以及各类常用方法
一.String创建的两种形式
1.通过new的当时
String str=new String();
2.不new的方式
String s1="";
二.new 和不new的方式的区别是什么
不new创建的字符串首先是拿着值去常量池中查找,是否有该内容,有就用常量池该字符串的地址,没有的话在常量池中创建并使用
new的方式创建的字符串首先在堆中创建并赋予字符串值,然后到常量池中查找,如果有就不做任何处理,如果没有就在常量池中开辟该字符串
三.String和Stirng Buffer、String Builder的区别
底层他们都是利用char[]数组开辟空间
关于字符串追加问题
String 需要追加元素 肯定五步走1 开辟新的数组空间2 老元素复制到新的空间中3 改变数组对象存储的地址4 回收老数组空间5 给最后的空间赋值【追加】
StringBuffer/StringBuilder 底层开辟的空间个数等于字符串的长度+16缓冲区
StringBuffer/StringBuilder 追加元素 直接先存储到缓冲区中 追加连接效率高
四.StringBuffer和StringBuilder之间的区别
StringBuffer 同一时间允许一个线程进行访问 效率较低 但是不会产生并发问题
StringBuilder 同一时间允许多个线程进行访问 效率较高 但是可能产生并发问题
五.String中常用的20个方法
跟长度相关 1个
int类型的
length() :
返回字符串的长度[字符的个数] 和密码校验有关
跟数组相关 3个
byte[]返回类型
1. getBytes() :
byte[] getBytes() : 使用自己电脑的默认字符集【编码】将此 String 编码为 byte 序列。ascii 一个字母 - 一个字节 / 一个汉字 - 两个字节unicode 一个字母 - 两个字节 / 一个汉字 - 两个字节 【 char 】
char[]类型的
2.toCharArray()
char[] toCharArray() : 打碎字符串 放入一个 char[]char[] 的大小 == 字符串的长度
String[]类型的
3.split(String x):
String[] split(String x) : 按照指定的内容劈开字符串打碎 String[] split("")"hello".split("") => [][]["h"] ["e"] ["l"] ["l"] ["o"]如果要劈开的内容 x 在最开始出现一次 最前面多留一块空间 空间的内容是 "" 【空串】如果要劈开的内容 x 在最后始出现一次 最后不会多留空间如果要劈开的内容 x 在中间连续出现两次 中间多留一块空间 空间的内容是 "" 【空串】
注意:
利用split也能打碎字符串 为String 双引号类型””,而toCharArray 是单引号的char类型
和判断相关5个
1. boolean equals(String)
判断调用者和参数是否内容一样[精准匹配]
应用场景:密码精准匹配
2 boolean equalsIgnoreCase(String)
忽略大小写的比较
3 boolean contains(String s);
调用者字符串中是否包含s
参数字符串s在调用者中连续存在 并且参数字符串的长度要小于等于调用者字符串的长度
4 startsWith(String):
是否以指定内容开头
5 endsWith(String);
是否指定内容结尾
与改变内容相关【接收!】4个
1 toUpperCase();
将所有内容 字母变成大写
2 toLowerCase();
将所有内容 字母变成小写
3 String replace(String x,String y);
将所有的x 替换成y
4 String replaceAll(String regx,String y);
第一个可以传入正则表达式 --范围
[]---》表示某一个位置的范围
[a-z] 小写字母
[A-Z]
[a-zA-Z] 所有字母
[\u4e00-\u9fa5] 所有中文范围
S1=s1.replaceAll(“[a-zA-Z]”,”*”);//表示 是字母就替换成*
和下标有关的3个
1 charAt();
定位到每一个字符 charAt(int Index);返回的char类型 范围【0,str.length()-1】
2 indexOf(String str)
判断参数内容第一次出现的内容 没找到返回-1
3 lastIndexOf(String);
返回参数内容所在的位置【最后一次】
2和3 来判断 当前内容只出现一次
Boolean matches(String regx); 这个很牛的
正则表达式
正则表达式
"[A-Z]" 大写
"[a-z]" 小写
"[0-9]" 数字 "\\d"
"[\u4e00-\u9fa5]" 中文[a-z]{1} => [a-z] 校验一位
[a-z]{3} => [a-z] 校验长度是3 + 每一个字符必须是a-z
[a-z]{3,5} => [a-z] 校验长度[3-5] + 每一个字符必须是a-z
[a-z]{3,} => [a-z] 校验长度>=3 + 每一个字符必须是a-z
相关文章:
java 第10天 String创建以及各类常用方法
一.String创建的两种形式 1.通过new的当时 String strnew String(); 2.不new的方式 String s1""; 二.new 和不new的方式的区别是什么 不new创建的字符串首先是拿着值去常量池中查找,是否有该内容,有就用常量池该字符串的地址࿰…...
VS 解决方案里面.vs文件夹
VS解决方案中的.vs文件夹主要用于存储当前用户在解决方案中的工作配置。 这些配置包括多个方面: 窗口布局和选项卡状态:.vs文件夹记录了VS关闭前最后的窗口布局以及最后打开的选项卡。这样,当用户重新打开解决方案时,可以继续之前…...
初试PostgreSQL数据库
文章目录 一、PostgreSQL数据库概述1.1 PostgreSQL的历史1.2 PostgreSQL安装1.3 安装PostgreSQL二、PostgreSQL起步2.1 连接数据库2.1.1 SQL Shell2.1.2 执行SQL语句2.2 pgAdmin 42.2.1 打开pgAdmin 42.2.2 查找数据库2.2.3 打开查询工具2.2.4 执行SQL语句三、实战小结文章目录…...
springboot3导出数据库数据到excel
一、导入依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.3.0</version></dependency><d…...
十四、行为型(观察者模式)
观察者模式(Observer Pattern) 概念 观察者模式(Observer Pattern)是一种行为型设计模式,它定义了对象间的一对多依赖关系,当被观察的对象(主题)状态发生改变时,所有依赖…...
爬取简书1
import osfrom selenium.webdriver.common.by import By from selenium import webdriver from selenium.webdriver.edge.service import Service import timeimport pandas as pdfrom selenium.webdriver.common.action_chains import ActionChainsdef get_aws():# 如果 WebDr…...
基于STM32单片机设计的矿山环境作业安全监测系统
文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】需求总结1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 模块的技术详情介绍【1】BC26-NBIOT模块【2】DHT11温湿度模块【3】PM2.5粉尘模块二…...
大数据linux操作系统
第一关:Linux的初体验 答案: cd / ls -a / (里面有空格要注意) 第二关:Linux的常用命令 答案: touch newfile mkdir newdir cp newfile newdir/newfileCpy 第三关:Linux查询命令帮助语句…...
MySQL 【日期】函数大全(七)
目录 1、UNIX_TIMESTAMP() 将指定的日期/日期时间转为 UNIX 时间戳值。 2、WEEK() 返回给定日期位于当年的第几周。 3、WEEKDAY() 返回给定日期的工作日编号。 4、WEEKOFYEAR() 返回给定日期位于当年的第几周 5、YEAR() 提取日期的年份部分并作为数字返回。 6、YEARWEEK()…...
IP报文格式、IPv6概述
IPv4报文格式 IPv4报文首部长度至少为20字节(没有可选字段和填充的情况下),下面来逐一介绍首部各个字段的含义 Version版本:表示采用哪一种具体的IP协议,对于IPv4来说该字段就填充4以表示,如果是IPv6就填充6IHL首部长度ÿ…...
学习记录:js算法(六十七):任务调度器
文章目录 任务调度器思路一思路二 任务调度器 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表,用字母 A 到 Z 表示,以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成,但有一个限制:两个…...
5分钟8图:Cursor如何让编程效率提升5倍?
5分钟8图,看Cursor如何革新AI编程? 作为一名AI编程的实践者,我很高兴为大家介绍Cursor - 一款基于VSCode的创新型集成开发环境(IDE),它巧妙地融合了先进的AI技术,为编程工作带来前所未有的便利。让我们通过多个图表深入了解Cursor的特性和工作流程。 Cursor的核心…...
车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导
FOTA模块中OTA的知识点:1.测试过程中发现哪几类问题? 可能就是一个单键的ecu,比如升了一个门的ecu,他的升了之后就关不上,还有就是升级组合ecu的时候,c屏上不显示进度条。 2.在做ota测试的过程中ÿ…...
PACT 在微服务架构中的用途
在微服务架构盛行的今天,如何确保各个微服务之间的交互正确且稳定成为了一个关键问题。PACT(一种契约测试工具)在这个领域发挥着重要的作用。那么,PACT 在微服务架构中的用途到底是什么呢? 一、微服务架构的挑战 微服…...
LeetCode 3200.三角形的最大高度:枚举
【LetMeFly】3200.三角形的最大高度:枚举 力扣题目链接:https://leetcode.cn/problems/maximum-height-of-a-triangle/ 给你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行…...
ssm基于java的招聘系统设计与开发+vue
系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 1 第2章 开发环境与技术 3 2.1 Java语言…...
【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!
💐个人主页:初晴~ 📚相关专栏:计算机网络那些事 前几篇文章中我们深入研究了TCP协议,因为TCP协议在我们日常开发中的使用频率非常高。而相比之下,IP协议与我们普通程序员关系就没那么近了。一般是专门开发…...
三次握手与四次挥手
一、三次握手 AB之间 都会发送一个syn - ack。 A 先发 syn ,B收到 。 A: 什么都不知道 B:知道A可以发送。 B发送syn-ack,A收到 。 A: 知道B可以收也可以发 , B知道A可以发送。 A发送ack,B收到。 A : 知道B可以收也可以发 , B知道A…...
awk命令学习记录
awk命令 awk命令 表示将一行数据按特定分割符分割成多列,而从而选取特定列数的数据,默认分割符为空格,连接符默认也是空格 // 1. 更换分割符 awk -F : 1.txt // 1.txt为你的文件名 // 2. 打印多列 awk {print $1,$2} // $0为整行ÿ…...
科大讯飞嵌入式面试题及参考答案
平衡二叉树和普通二叉树的区别 平衡二叉树是一种特殊的二叉树,与普通二叉树相比有以下显著区别: 一、定义与结构 普通二叉树:二叉树是每个节点最多有两个子树的树结构。它没有特定的平衡要求,节点的分布可能比较随机。例如&#x…...
OpenClaw技能开发入门:为千问3.5-35B-A3B-FP8定制多模态处理模块
OpenClaw技能开发入门:为千问3.5-35B-A3B-FP8定制多模态处理模块 1. 为什么需要自定义OpenClaw技能? 去年夏天,我负责一个数据分析项目时,每天要手动从上百张图表中提取关键数据点。当我发现OpenClaw可以通过技能扩展实现自动化…...
微软VibeVoice-TTS-Web-UI:长文本语音合成效果展示
微软VibeVoice-TTS-Web-UI:长文本语音合成效果展示 1. 突破性的语音合成体验 1.1 从机械朗读到情感表达 传统语音合成技术往往停留在"文字转声音"的基础层面,生成的语音缺乏情感起伏和自然韵律。VibeVoice-TTS-Web-UI通过创新的语言理解和声…...
镭神智能C32激光雷达实战:从开箱到点云可视化全流程解析
1. 开箱与硬件连接 第一次拿到镭神智能C32激光雷达时,包装箱里会有这些关键部件:雷达主机、电源适配器、网线、HDMI线(可选)和说明书。我建议先找个宽敞的工作台,把所有配件摊开检查一遍,避免遗漏。 连接步…...
第二十六节:专栏结语与未来演进——从单体Skill到多Agent协作
引言 上一章,我们走完了Skill开发的“最后一公里”,完成了打包、发布,将个人智慧转化为了可流通的数字资产。至此,你已经掌握了开发一个高质量、可交付单体Skill的全套技能。然而,技术的浪潮永不停歇,当无数…...
从LaTeX论文中提取关键思想:nlp_structbert辅助学术文献综述
从LaTeX论文中提取关键思想:nlp_structbert辅助学术文献综述 写文献综述,大概是每个研究生和科研人员都绕不开的“必修课”。面对几十甚至上百篇PDF论文,光是下载、整理、阅读摘要,就足以耗掉一周的时间。更头疼的是,…...
【限时公开】某汽车产线OPC UA零故障运行38个月的C#配置秘钥(含证书自动轮换+异常重连熔断机制源码)
第一章:工业场景下OPC UA高可用配置的核心挑战与设计哲学在严苛的工业自动化环境中,OPC UA不仅是数据交换的协议栈,更是控制系统连续性与可信度的基石。高可用(HA)配置并非简单地部署冗余服务器,而是需在协…...
2026 年重庆压浆料厂家选择 行业经验参考分析
2026 年,在重庆进行工程建设时,选择合适的压浆料厂家至关重要。本文将深入分析当前压浆料行业现状,为你提供可落地的厂家选择干货,助你解决选择难题。在压浆料的使用过程中,用户面临着诸多痛点。从材料性能来看&#x…...
【基于Python技术的智慧中医商业项目】后端应用Articles代码实现(四)
后台文章接口一旦缺少统一的权限边界与查询约束,常见风险集中在未审核内容被暴露、分页与筛选口径不一致、详情阅读数更新链路出错,表现为列表数据异常、详情访问抖动、统计数据不可信。 内容围绕文章应用的 views 与 urls 两段链路拆解,聚焦分页与筛选参数、只读视图集的查…...
Halcon 9点标定保姆级教程:从螺丝批头点到机械手精准定位(附源码)
Halcon 9点标定实战指南:从硬件准备到误差优化的全流程解析 在工业自动化领域,视觉引导的机械手定位精度直接影响生产质量。许多工程师第一次接触Halcon标定时,往往被理论公式和算法流程所困扰,却忽略了现场实施中最关键的实操细节…...
基于Qt开发Lingbot-Depth-Pretrain-ViTL-14的跨平台桌面调试工具
基于Qt开发Lingbot-Depth-Pretrain-ViTL-14的跨平台桌面调试工具 深度估计模型,比如我们今天要聊的 Lingbot-Depth-Pretrain-ViTL-14,在机器人导航、三维重建、增强现实这些领域越来越重要。但说实话,对于开发者或者研究人员来说,…...
