【Java高级特性】java学习之旅28-String类

080、多轴运动控制:插补器设计(螺旋线插补) 本文分享了螺旋线插补器设计的实战经验。针对五轴点胶机Z轴抖动问题,作者分析了螺旋线数学本质,提出基于归一化时间参数的速度规划方法,强调各轴严格同步的重要性。文章详细介绍了速度分解、加减速处理、嵌入式优化技巧(查表法、定点化),并总结了起点闭合、速度波动、数值处理等常见问题解决方案。最后给出5条实用建议:注重速度规划而非纯数学推导、预先仿真、保留调试接口、考虑机械谐振、防范编码器丢脉冲。通过优化插补周期、电子齿轮比和S形速度曲线,成功将设备良率从60%提升至95%。 阅读详情

字符串的常量:底层使用一个被final修饰的char类型数组存储字符,初始化赋值之后,不可改变(每次改变String类型的值,都会在内存中新建一个对象)。

常用的方法:

1 构造方法:
//根据底层的实现原理来创建
String str =  new String(new char[] {'1','2','3'});
//常用方式
String str = "123";

String str = new String("123")
2 获取字符串的长度.length()
String str = "123";

System.out.println(str.length());//3
3 获取指定索引位置的字符.charAt(int index)
String str = "hello world 你好 世界";

System.out.println(str.chatAt(4));//o
4 返回字符串对应的字符数组.toCharArray()
String str = "123";

char[] charArray = str.toCharArray();
5 比较字符串是否相同.equals(Object obj)\equalsIgnoreCase(String str)
String str = "hello world";

System.out.println(str.equals("Hello World"));//false

System.out.println(str.equalsIgnoreCase("Hello World"));//true
6 将字符串转为大写或者小写.toLowerCase()\toUpperCase()
String str = "Hello";

System.out.println(str.toLowerCase);//hello

System.out.println(str.toUpperCase);//HELLO
7 字符串拼接(通过创建新的字符数组,拼接数组内容).concat(String str)
String str = "hello";

String newStr = str.concat(" java");

System.out.println(newStr);//hello java
8 查找指定字符或者字符串第一次出现的位置的索引.indexOf(…)\lastIndexOf(…)
String str = "hello";

//正序查找
int index1 = str.indexOf('l');
//倒叙查找,也是按照正序的索引来标记的
int index2 = str.lastIndexOf('l');
//查找字符串
int index3 = str.indexOf("lo");
//从指定的索引处开始查找
int index4 = str.indexOf('l',3);

System.out.println(index1);//2
System.out.println(index2);//3
System.out.println(index3);//3
System.out.println(index4);//3
9 将基本数据类型转化为字符串.valueOf()
String str = String.valueOf(1234);
10 判断是否包含指定的字符串.contains(String str)
String str = "hello world";

boolean result = str.contains("hello");
System.out.println(result);//true
11 去除首位空格.trim()
String str = "      hello  java     ";

String newStr = str.trim();
System.out.println(newStr);//hello java
12 按照正则表达式拆分字符串.split()
String str = "hello,java";

String[] strArray = str.split(",");
System.out.println(Arrays.toString(strArray));//[hello,java]
13 切割字符串.substring(int beginIndex)\substring(int beginIndex, int endIndex)
String str = "hello java";

String newStr1 = str.substring(5);//包含索引为5的字符
System.out.println(newStr1);// java

String newStr2 = str.substring(0,5);//包前不包后
System.out.println(newStr2);//hello
14 替换字符.replace/.replaceAll(String regex, String replacement)
String str = "hello";

String newStr = str.replace('l' , 'L');
System.out.println(newStr);//heLLo

replaceAll(String regex, String replacement)//利用正则表达式去替换
15 判断字符串是否包含指定的前缀或者后缀.startsWith(String prefix)\endsWith(String suffix)
String str = "hello world";

System.out.println(str.startsWith("he"));//true
System.out.println(str.endsWith("ld"));//true

练习:

利用String类解析json字符串去创建3个Student对象

/**
 * Student类
 */
public class Student {

	private String name;
	
	private int age;
	
	private String sex;
	
	//省去getter/setter,构造方法
}
/**
 *拆分json字符串
 */
 public static void main(String[] args) {
	
		String str = "[{name:junki,age:18,sex:male},{name:lucy,age:16,sex:female},{name:tom,age:20,sex:male}]";
		
		str = str.substring(str.indexOf("[") + 1, str.indexOf("]"));
		str = str.replace("{", "");
		
		String[] newStr = str.split("},");
		Student[] stu = new Student[newStr.length];
		
		for (int i = 0; i < newStr.length; i++) {
			String name = newStr[i].substring(newStr[i].indexOf("name:")+5,newStr[i].indexOf(",age"));
			int age = Integer.parseInt(newStr[i].substring(newStr[i].indexOf("age:")+4,newStr[i].indexOf(",sex")));
			String sex = newStr[i].substring(newStr[i].indexOf("sex:")+4,newStr[i].length());
			stu[i] = new Student(name,age,sex);
		}
		
		System.out.println(Arrays.toString(stu));
	}

在解析json字符串时,我们可以利用alibaba的Fastjson.jar

	public void test2() {
		String jsonStr = "[{name:'junki',age:18,sex:'male'},{name:'lucy',age:16,sex:'female'},{name:'tom',age:20,sex:'male'}]";
		//在后面利用反射填写实体类可以自动创建对象
		List<Student> stuList = JSON.parseArray(jsonStr, Student.class);
		
		System.out.println(stuList);
		//加上true可以帮我们打印处可视化的json格式数据
		String jsonString = JSON.toJSONString(stuList, true);
		
		System.out.println(jsonString);
		
	}
SpringAI系列 - MCP篇(二) - MCP Server Boot Starter 此处需注意之前的。 阅读详情

相关推荐

一文说清Arduino如何实现舵机平滑转动(机器人场景)

深入讲解如何利用arduino控制舵机转动,实现机器人场景中的平稳运动。通过代码优化与脉冲宽度调节,让舵机动作更精准流畅,适用于各类自动化项目。

weixin_35706255的博客 897

28. string类中方法练习

1. 自己写trim方法 public class Demo3 { public static void main(String[] args) { System.out.println(myTrim(" 123 ")); } //需求:去除字符串两边空格的函数 public static String myTrim(...

weixin_30458043的博客 103

Excel地理探测器实战:5分钟搞定空间分异性分析(附完整数据集)

本文详细介绍了如何使用Excel地理探测器插件进行空间分异性分析。通过5分钟实战教程,手把手指导数据格式准备、软件操作及四大探测器(分异及因子、交互作用、风险区、生态探测器)的结果解读,帮助规划师、研究者快速验证地理因素对现象分布的影响,大幅降低GIS分析门槛。

peace的博客 607

String 20个常用方法

求字符串个数 String str = "优快云" length(); int a = str.length();//求字符串个数 和数组有关的方法 getBytes(); byte[] data = str.getBytes(); //将字符串 转变成字节数组 toCharArray(); char[] data = str.toCharArray();//打碎字符串 转变成字符数组 split(); String[] data = str.split(String);//将字符串按某字符

weixin_45681697的博客 1755

大数据国赛第2套任务C-子任务一特征工程

根据**Hudi**的dwd_ds_hudi库中相关表或MySQL中shtd_store中相关表(order_detail、sku_info),计算出与用户id为6708的用户所购买相同商品种类最多的前10位用户(只考虑他俩购买过多少种相同的商品,不考虑相同的商品买了多少次),将10位用户id进行输出,若与多个用户购买的商品种类相同,则输出结果按照用户id升序排序,输出格式如下,将结果截图粘贴至客户端桌面【Release任务C提交结果.docx】中对应的任务序号下;

weixin_44117248的博客 901

LangChain + PlayWright实战:5分钟搞定网页自动化测试(附完整代码)

本文详细介绍了如何利用LangChain与PlayWright构建智能网页自动化测试系统。通过环境配置、核心架构设计、实战Agent构建及性能优化等步骤,开发者可以快速实现高效的Web操作自动化,提升测试效率。文章还提供了完整代码示例和典型问题解决方案。

weixin_27791839的博客 238

基础面试

1.如何将字符串进行反转? 第一种: public static void main(String[] args) { String str = "ABC123ABC"; StringBuilder stringBuilder = new StringBuilder(str); stringBuilder.reverse(); String newStr...

有志青年 195

节卡Jaka Zu APP编程避坑指南:从频繁通讯错误到稳定Socket交互的调试心得

本文详细解析了节卡Jaka Zu APP编程中常见的通讯错误问题,并提供了从基础排查到高级调试的完整解决方案。通过优化网络配置、固件匹配、心跳机制和数据交互规范,开发者可实现稳定的Socket通讯,有效提升工业机器人操控的可靠性。文章特别针对v1.6.7.3版本的典型问题给出了实用调试技巧。

weixin_42639633的博客 319

java string 特性_JAVA 中关于String的特性

一、初始化String的两种方式String str1 = "hello";String str2= new String("hello");第一种方式本质上是声明了一个String的匿名对象,然后str1指向该对象。该匿名对象保存在对象池中。第二种方式分为两步:1) 声明一个"hello"的String对象2) new 关键字申请新的内存,将该内存分配String对象,并将值"hello"分配给...

weixin_42509815的博客 246

盘点那些好用的SAP FIORI App(二) -上传凭证Upload Journal Entry

SAP FICO运维问题及解决方案分享

lijinbao171022的博客 1542

自然语言处理之机器翻译:Transformer:Transformer在低资源语言翻译中的应用

Transformer模型是自然语言处理领域的一个重要突破,由Vaswani等人在2017年的论文《Attention is All You Need》中提出。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)的序列依赖性,采用自注意力机制(Self-Attention)处理输入序列,极大地提高了训练效率和模型性能。

zhubeibei168的博客 1014

31、Java高级特性——Math类、Random类、String类、StringBuffer类、StringBuilder类

一、Math类 1、Math类中的方法 1.1 圆周率:PI 1.2 绝对值:abs() 1.3 返回最小近似值:ceil() 1.4 返回最大近似值 1.5 四舍五入:round() 1.6 最大值和最小值:max()/min() 1.7 求指定次幂:pow() 1.8 随机数:random() 二、Random类 1、Random类构造方法 2、Random中的方法 3、代码演示 4、同种子(参数相同) 三、String类 1、Strin

优快云_Loveletter的博客 844

OsgEarth开发笔记(三):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(下)

上一篇编译了proj6.2.0、gdal3.2.1,本篇继续。 OsgEarth的编译,是基于Osg和OsgEarth结合在一起的,先要编译Osg,然后编译OsgEarth。OsgEarth的依赖库较多,分为上、中、下三篇,然后单独有一篇如何将编译好的osgEarth集成到Qt中。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 4万+

【Java String】类深度解析:从原理到高效使用技巧

Java String类深度解析 核心特性 不可变性:底层存储为final char[](JDK9+优化为byte[]),保证线程安全且内容不可修改 内存机制:字面量直接存入常量池实现复用,new String()强制创建堆中新对象 常量池优化:通过intern()方法主动缓存字符串,减少重复对象创建 关键方法对比 方法 作用 示例 equals() 内容比较 "a".equals("A")→false == 地址比较 new String("a"

user340的博客 2619

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JAVA的高级特性——实用类(包装类、String类、StringBuffer类、Math类)

枚举 枚举是由一组固定的长量组成。 枚举:一一列举出来 1.关键字:enum 2. 里面可以写汉字,字母,中间使用逗号隔开。末尾不加分号也不错但是不推荐 public enum Test { 男,女; } 包装类 包装类:是一个基本类型的对象,具有属性和方法。 为什么要学习它呢? 因为在泛型的声明过程中,是不能将基本数据类型作为泛型的约定,但是包装类就可以。 包装类把基本数据类型转换为对象 每个基本类型在java.lang包中都有一个相应的包装类 包装类有何作用: 1.提供了一系列

CSMCZM的博客 337

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java高级类_Java高级特性 实用类

枚举enum枚举是一个类,就是一个引用数据类型枚举类中根据需求定义多个枚举值,枚举值一旦被定义,不允许被改变,静态的常量01.在Student类中定义Gender类型的sex私有属性:private Gender sex;02.创建Gender的枚举public enum Gender{MAN("男"),WOMEN("女");private String sex;private Gender(St...

weixin_31110741的博客 246

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java中String xx xx_来说说Java中String 类的那些事情

今天正好学校那边的任务不多,我就打算把Stirng 的有关知识点都总结在一起了,这样有利于知识的系统性,要不然学多了就会越来越杂,最主要的是总会忘记,记忆的时间太短了,通过这种方式,把它归纳在一起,写一下博客,这样我认为会好一点,也可以帮助有需要的人,一举两得,嘻嘻,废话不多说继续干,奥里给。首先咱们从最开始的源头来说,刚开始接触JAVA的时候,我们学过java的基本的数据类型[ 1 ] 基本类...

weixin_42466868的博客 222

java高级特性:实用类

java高级特性:实用类 java的强大之处在于它提供了多种多样的类库。大大提高了编程效率和质量 java.lang : java使用最广泛的类,自动导入所有程序中,最基础的类和接口、包装类、Math类、String类等常用的类都包含在此。此外,该包还提供了用于管理类的动态加载、外部进程创建、主机环境查询、安全策略实施等的系统操作类。 java.util : 包含了系统辅助类,特别是Collection、List、Set、Map等集合类。 java.io : 包含了输入流和输出流有关的类。 java.net

xin9460304的博客 197

Java高级特性-String、StringBuffer和StringBuilder

Java高级特性-String、StringBuffer和StringBuilder 一:String Java语言中的字符串值都属于String类,虽然有其他方法表示字符串(如字符串数组),但Java一般使用String类作为字符串的标准格式,Java编译器将字符串作为String对象,String类是字符串常量,是不可更改的常量。 String类对象代...

小沐CA 292

Java String类终极指南:从原理到实战的万字深度解析

1. **比较内容用equals()**:==比较只在特定场景使用2. **大量拼接用StringBuilder**:避免创建过多中间对象3. **静态字符串用字面量**:充分利用常量池优势4. **注意编码问题**:明确指定字符集进行字节转换5. **善用新特性**:如Java 11的isBlank()、lines()等方法。

MeyrlNotFound的博客 743

Java高级特性

Java高级特性 属于面向对象的使用 使用的就是API(Application Programming Interface):应用程序接口文档 学习的就是Java中常用的核心类以及核心接口,---->Jdk提供的 Object类: 每个类都有Object作为超类--->父类的意思 所有的类都默认继承自Object 常用方法: public final Class getClass() (重要):获取当前正在运行的Class类对象(字节码文件对象 public String g.

bn643049694的博客 291

Java高级特性--实用类

Java高级特性–实用类 1、枚举 枚举指由一般固定的常量组成的类型 [Modifier]enum enumName{ enumContatName1; [,enumConstantName2...[;]] //[field, method] } 如: //创建枚举 public enum Genders{ Male,Female } //创建对象 public class Student{ public Gends sex; } //测试类 public cl

weixin_46511924的博客 173

Java String类深度解析:从基础到高级的全面指南

本文全面解析Java中的String类,涵盖其核心特性和使用要点。String作为不可变字符序列,具有Unicode支持、final修饰等特性,创建方式包括字面量、构造函数等多种形式。文章深入探讨了字符串不可变性的实现原理及优点,分析了字符串常量池机制和intern()方法。详细介绍了字符串常用操作方法,比较了不同拼接方式的性能差异,推荐根据场景选择StringBuilder或StringBuffer。此外还讲解了字符编码处理及Java 11新增的字符串方法,帮助开发者全面掌握String类的使用技巧和优化

weixin_51786043的博客 974

Java中String类常用方法详解

类中有很多方法,用于执行各种字符串操作。

记录学习编程的日常 1135

头歌实训代码 Java面向对象 高级特性 多线程

【代码、答案】头歌作业,面向对象、高级特性(集合框架、IO流)、多线程

HL031125的博客 2312

Java基础-高级特性-简单总结(实用类)

枚举:   简单讲一下枚举:枚举指由一组固定的常量组成的类型,实用关键字enum定义,语法如下                          访问修饰符 enum enumName{ ... } 括号中的枚举常量用逗号隔开                          顺便一提,枚举中的常量也是变量,所以遵循普通变量的命名规则,不可以用数字等开头                  例:pu...

Gentleman灬Q的博客 892
上一篇: 【Java高级特性】java学习之旅27-包装类
下一篇: 【Java高级特性】java学习之旅29-StringBuffer和StringBuilder
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值