Java学习笔记——字符串

字符串(String)是用一对双引号括起来的零个或多个字符组成的有限序列。在Java中,字符串被当作对象/类来处理。

程序中需要用到的字符串可以分为:
String类:不可变字符串类,如果修改系统会自动创建新的对象;
StringBuffer类:可变字符串类,多线程;
StringBuilder类:可变字符串类,单线程;
串的两种最基本的存储方式是顺序存储方式和链接存储方式

String类字符串

字符串变量必须赋值后才可以使用,这称为字符串对象初始化。
字符串的创建和赋值的方式有三种:

String 字符串变量名;
字符串变量名="字符串常量";
String username="";
username="Tom"或者String 字符串变量名="字符串常量";
String SayHello="Hello world";或者String studentName=new String("周杰杰");
String对象的创建:

1、利用构造器:

String s=new String("Hello world");

2、直接创建:

String s="Hello world";

对字符串的操作函数或方法:

获取字符串的长度

length()方法是用来获取字符串长度的。它会返回字符串对象中所包含的字符的个数,例如:

public class myfirst {public static void main(String[] args) {String sayHello="Hello,Welcome to Java!!!";  //创建一个sayHello字符串并赋值int length=sayHello.length();                   //创建一个变量length存放所获取的字符串长度System.out.println(length);}
}

字符串连接

1. concat()函数

str1.concat(str2);

concat()方法返回一个字符串,是将字符串str2添加到str1后面之后形成新字符串,例如:

public class myfirst {public static void main(String[] args) {String sayHello1="Hello,";        //创建字符串sayHello1、sayHello2并赋值String sayHello2="Welcome to Java!!!";String sayHello3=sayHello1.concat(sayHello2);   //将合并后的字符串赋值给sayHello3System.out.println(sayHello3);}
}运行结果为:Hello,Welcome to Java!!!

也可以直接使用字符串常量来调用concat()方法。例如:

String sayHello3="Hello,".concat("welcome to Java!!!")

2. 加号'+'运算符

连接字符串还可以使用加号“+”运算符。这是一个重载了的运算符,用来直观地连接两个字符串,它使用起来比concat()方法更加灵活。例如:

String 字符串3=字符串1+字符串2;

注意:

当表达式中包含多个加号,并且存在各种数据类型参与运算时,则按照加号运算符从左到右进行运算;

Java会根据加号运算符两边的操作数类型来决定是进行算术运算还是字符串连接的运算。

字符串比较

比较两个字符串是否相等

equals()方法:比较两个字符串是否相等,返回值boolean值;
equalsIgnoreCase()方法:同样返回值为boolean值;

字符串1.equals(字符串2);            //严格比较字符串是否相同
字符串1.equalsIgnoreCase(字符串2);  //忽略字母大小写来进行比较
public class myfirst {public static void main(String[] args) {String sayHello1="HELLO";          //创建两个字符串String sayHello2="hello";System.out.println(sayHello1.equals(sayHello2));  //使用equals方法进行严格比较System.out.println(sayHello1.equalsIgnoreCase(sayHello2));  //使用equalsIgnoreCase方法忽略大小写进行比较}
}运行结果:false
true

截取字符串:

  • str1.substring(int index):提取从位置索引开始的字符串部分
  • str2.substring(int beginindex, int endindex):提取beginindex到endindex-1为止的字符串部分
    public class myfirst {public static void main(String[] args) {String s1="abcdefg";#截取开始位置为3的字符串System.out.println(s1.substring(3));       #截取开始索引为2,结束索引为5但不包含5的字符串System.out.println(s1.substring(2, 5));    }
    }运行结果:
    defg
    cde

返回指定索引处的字符:charAt()

charAt函数返回只包含一个字符的字符串,而不是一个字符本身。如果给定index超出字符串范围,则返回一个空字符串

如果需要直接输出字符串中的字符,如输出字符串s2中的字符,仅需将变量类型定义为char型

StringBuilder类字符串

StringBuilder和String的转换

String转StringBuilder

String a = new String("123");
StringBuilder s = new StringBuilder(a);

StringBuilder转String

String s2 = s.toString(s);

StringBuilder常用函数接口

1.字符串拼接 append()

StringBuilder s = new StringBuilder("hzy ");
//直接调用append();
s.append("aaa ");
//也可以如下拼接
s.append("bbb ").append("ccc ");System.out.println(s);运行结果:
hzy aaa bbb ccc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Doxygen在vs code配置

找到这个 就在这里面配置,如果要在原有的下面添加别忘了后面加个逗号,我在他前面加的所以我在上面加了个 //基础设置 “doxdocgen.c.triggerSequence”: “/", “doxdocgen.c.firstLine”: "/", “doxdocgen.c.commentPrefix”: &quo…

〔023〕Stable Diffusion 之 界面主题 篇

✨ 目录 🎈 系统内置主题🎈 kitchen Theme 主题🎈 Catppuccin Theme 主题🎈 Cozy Nest 主题🎈 系统内置主题 可以通过命令行修改主题,在 webui-user.bat 文件中 set COMMANDLINE_ARGS 参数后面添加 --theme dark 来设置深色主题当然,系统设置里面也自带了很多的主题…

C++ 异常处理学习笔记

一、使用情况 1、数组越界:包括数组索引小于0,或者大于数组长度 2、空指针 可以抛出(throw)各种类型的异常,catch的地方接收就可以

一款非常容易上手的报表工具,简单操作实现BI炫酷界面数据展示,驱动支持众多不同类型的数据库,可视化神器,免开源了

一款非常容易上手的报表工具,简单操作实现BI炫酷界面数据展示,驱动支持众多不同类型的数据库,可视化神器,免开源了。 在互联网数据大爆炸的这几年,各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的…

for forin forof forEach map区别

一、总结 相同点:都是串行遍历。不同点: 二、for of循环 设计目的:遍历所有数据结构的统一方法。原理:会调用数据结构的Symbol.iterator方法。 只要数据结构定义了Symbol.iterator属性,就能用for of遍历它的成员。…

Java 格式化之使用 %02X 格式化mac地址

记录下使用 %02X 格式化mac地址的方法。 String.format 传入 %ABX 的意思,拆解如下, %X :正常输出十六进制数 。%AX:十六进制数,输出 A 位。如果本身大于 A 位,正常输出。%ABX:十六进制数&…

Android 匿名共享内存的使用

注:本文内容转载自如下文章:Android 匿名共享内存的使用 Android View 的绘制是如何把数据传递给 SurfaceFlinger 的呢? 跨进程通信时,数据量大于1MB要怎么传递呢?用 匿名共享内存(Ashmem) 是个…

医药行业安全生产信息化建设分享

随着科技的快速发展和全球化进程的推进,医药行业作为人类健康和安全的重要组成部分,面临着日益严峻的安全生产挑战。近年来,医药企业对于安全生产的需求越来越强烈,安全生产信息化建设成为了医药行业发展的重要趋势。本文将探讨医…

短剧解说小程序搭建,短剧解说小程序源码

短剧解说小程序搭建,短剧解说小程序源码 可定制开发小程序,H5,APP等系统 有需要可定制可出源码,这个是啥你懂的(VVVVVVVVVVV):二五四九七八九零五九 需要源码或搭建可看上面的数字信息 短剧解说小程序搭建 小程序使用…

nvm使用的注意事项和常用命令。

nvm官网下载地址:nvm文档手册 - nvm是一个nodejs版本管理工具 - nvm中文网 (uihtm.com) 参考网址:(14 封私信 / 80 条消息) 如何通过 nvm 安装多版本 nodejs?npm 安装失败了怎么办? - 知乎 (zhihu.com) nvm目录下,修…

自定义协议、序列化与反序列化

在编写TCP和UDP程序的时候,我们很自然的就使用了读取的函数对数据进行获取,对于UDP来说提供的是无连接的以数据报的形式进行传输,对于TCP来说是面向数据流的,在之前的程序中我们只是进行了读取的操作,但是并没有对读取…

修复Ripro主题扫码后空白或null或array的问题

WordPress Ripro主题使用的人比较多,绝大部分用的盗版主题,RiPro主题使用虎皮椒V3支付接口在使用弹窗支付的时候,微信或者支付宝扫码后出现null或array,会发生在ripro所有版本中。下面是修复方法: 打开ripro主题inc目…

代码大全阅读随笔(七)

循环控制 循环控制会出现什么样的错误,任何一种答案都可以归结到下面所说的问题之一:忽略或者错误的对循环执行初始化,忽略了对累加变量或者其他与循环有关变量执行初始化,不正确的嵌套,不正确的循环终止,忽…

安科瑞为工业能效提升行动计划提供EMS解决方案-安科瑞黄安南

摘要: 2022年6月29日工信部、发改委、财政部、生态环境部、国资委、市场监管总局六部门联合下发《关于印发工业能效提升行动计划的通知》(工信部联节〔2022〕76号,以下简称《行动计划》),主要目的是为了提高工业领域能源利用效率&…

Hbase分布式集群部署

目录 一、环境说明 二、部署Hbase 2.1 解压Hbase 2.2 移动解压包 2.3 修改 hbase-env.sh文件 2.4 修改环境变量 2.5 修改hbase-site.xml文件 2.6 修改regionservers 文件 2.7 分发hbase 2.7.1 分发hbase包 2.7.2 分发环境配置 2.8 启动hbase服务 2.8.1 环境生效 …

特殊时间(蓝桥杯)

特殊时间 问题描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 2022年2月22日22:20 是一个很有意义的时间, 年份为 2022 , 由 3 个 2 和 1 个 0 组成, 如果将月和日写成 4 位, 为 0222 , 也是由 3 个 2 和 1 个 0 组 成…

Tungsten Fabric数据量过大问题处理初探

开源SDN系统Tungsten Fabric面临数据产生过多问题。 经排查,产生数据多出自analytics组件的Cassandra数据库()。很多分析数据会存储至Cassandra库,并持久化处理。 没有特殊调整的话,目录在 /var/lib/docker/volumes/analytics_database_an…

抗锯齿的线

抗锯齿的线 右下角的时候h是0,到顶部 h是1,然后中间y相距4个像素,那dy就是0.25 如果让h abs(fract(h - 0.5) - 0.5) 中间一行0.5,第一行 第三行都是0.25,两端都是0 根据插值来看 这里是 如果用h/dy 那么第一行以上&#xff0…

【ROS入门】创建工作空间与功能包

文章结构 工作空间文件结构创建工作空间流程创建工作空间编译工作空间设置环境变量/创建功能包创建功能包编译功能包 检查环境变量 工作空间文件结构 工作空间(workspace)是一个存放工程开发相关文件的文件夹,类似于在windows中使用IDE创建的工程。主要分为以下四个…

276_C++_HTTP请求处理的内部实现,具体处理逻辑在其中完成

这个函数是HTTP请求处理的内部实现,具体处理逻辑在其中完成。 根据参数的值和请求的类型,它会处理不同的情况,包括错误处理、身份验证和设置回调函数等操作。 ok这段代码主要实现了一个HTTP服务器的请求处理逻辑,处理IPC升级相关的请求。 具体的处理逻辑和细节需要查看代码…