Java中常用类String的构造器与常用方法

Java中常用类String的构造器与常用方法

在Java编程中,String类是一个核心类,用于处理文本数据。掌握String类的构造器和常用方法对于编写涉及文本操作的程序至关重要。本文将为初学者介绍String类的一些常用构造器和常用方法,并通过示例代码进行说明。

1. 构造器(Constructors)

String类提供了多个构造器,用于创建String对象。以下是一些常用的构造器:

1.1 通过字符串字面值创建

// 直接使用字符串字面值创建String对象
String str1 = "Hello, World!";

这里并没有直接使用构造器,但是字符串字面值实际上是通过一个特殊的构造器来创建String对象的。这个构造器是String类的一个私有构造器,用于字符串常量池中的字符串。

1.2 通过字符数组创建

// 使用字符数组创建String对象
char[] charArray = {'H', 'e', 'l', 'l', 'o'};
String str2 = new String(charArray);
// 或者指定一个偏移量和长度
String str3 = new String(charArray, 1, 3); // 结果为 "ell"

1.3 通过字节数组创建

// 使用字节数组创建String对象(注意,这种方式会假定字节数组是UTF-8编码的)
byte[] byteArray = {72, 101, 108, 108, 111}; // 对应 "Hello" 的UTF-8编码
String str4 = new String(byteArray);// 也可以指定字符集
String str5 = new String(byteArray, StandardCharsets.UTF_8);

1.4 通过另一个String对象创建

// 使用另一个String对象创建新的String对象(实际上是复制)
String str6 = new String("Hello, World!");

2. 常用方法(Methods)

String类提供了许多方法来操作字符串。以下是一些常用的方法:

2.1 获取字符串长度

String str = "Hello, World!";
int length = str.length(); // 返回13

2.2 获取指定位置的字符

char charAt = str.charAt(0); // 返回 'H'

2.3 字符串连接

String str1 = "Hello";
String str2 = "World";
String concatenated = str1 + " " + str2; // 返回 "Hello World"

或者使用concat方法:

String concatenated = str1.concat(" ").concat(str2); // 返回 "Hello World"

2.4 比较字符串

// 使用equals方法比较字符串内容是否相等
boolean isEqual = str.equals("Hello, World!"); // 返回true// 使用equalsIgnoreCase方法忽略大小写比较字符串内容是否相等
boolean isEqualIgnoreCase = str.equalsIgnoreCase("hello, world!"); // 返回true// 使用compareTo方法比较字符串字典顺序(基于Unicode码点)
int compareResult = str.compareTo("Hello, Java!"); // 返回一个负数,因为"World"在"Java"之后

2.5 查找子字符串

// 使用indexOf方法查找子字符串首次出现的位置
int index = str.indexOf("World"); // 返回7// 查找子字符串从指定位置开始首次出现的位置
int fromIndexIndex = str.indexOf("o", 8); // 返回10,因为从索引8开始查找

2.6 截取子字符串

// 使用substring方法截取子字符串
String subStr = str.substring(7); // 从索引7开始到字符串末尾,返回 "World!"
String subStrWithLength = str.substring(0, 5); // 从索引0开始,长度为5的子字符串,返回 "Hello"

2.7 替换字符串中的子串

// 使用replace方法替换字符串中的子串
String replaced = str.replace("World", "Java"); // 返回 "Hello, Java!"

2.8 转换为大写或小写

// 转换为大写
String upperCase = str.toUpperCase(); // 返回 "HELLO, WORLD!"// 转换为小写
String lowerCase = str.toLowerCase(); // 返回 "hello, world!"

2.9 去除字符串两端的空格

// 使用trim方法去除字符串两端的空格
String trimmed = "   Hello, World!   ".trim(); // 返回 "Hello, World!"

2.10 判断字符串是否为空或null

// 使用isEmpty方法判断字符串是否为空(即长度为0)
boolean isEmpty = "".isEmpty(); // 返回true// 使用null判断字符串是否为null
String nullStr = null;
boolean isNull = nullStr == null; // 返回true// 同时判断字符串是否为null或空
String mayBeNullOrEmpty = "";
boolean isNullOrEmpty = mayBeNullOrEmpty == null || mayBeNullOrEmpty.isEmpty(); // 对于空字符串返回true

2.11 分割字符串

// 使用split方法根据指定分隔符分割字符串
String[] words = "Hello,World,Java".split(","); // 返回 ["Hello", "World", "Java"]

2.12 字符串的格式化

// 使用String.format方法进行字符串格式化
String formatted = String.format("Hello, %s! Today is %s.", "World", "Monday"); // 返回 "Hello, World! Today is Monday."

示例代码

下面是一个综合了上述常用方法的简单示例代码:

public class StringDemo {public static void main(String[] args) {String str = "   Hello, World!   ";// 获取长度int length = str.length();System.out.println("Length: " + length); // 输出 "Length: 14"// 去除两端空格String trimmed = str.trim();System.out.println("Trimmed: " + trimmed); // 输出 "Hello, World!"// 查找子字符串位置int index = trimmed.indexOf("World");System.out.println("Index of 'World': " + index); // 输出 "Index of 'World': 7"// 截取子字符串String subStr = trimmed.substring(7);System.out.println("Substring: " + subStr); // 输出 "World!"// 替换字符串中的子串String replaced = trimmed.replace("World", "Java");System.out.println("Replaced: " + replaced); // 输出 "Hello, Java!"// 转换为大写String upperCase = replaced.toUpperCase();System.out.println("Upper case: " + upperCase); // 输出 "HELLO, JAVA!"// 分割字符串String[] words = replaced.split(",");for (String word : words) {System.out.println(word); // 分别输出 "Hello" 和 " Java!"}}
}

总结

String类是Java中非常重要的一个类,它提供了丰富的方法来操作字符串。本文介绍了String类的一些常用构造器和常用方法,并通过示例代码进行了说明。初学者应该熟练掌握这些基本操作,以便在编写涉及文本处理的程序时能够灵活运用。

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

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

相关文章

Git 进行项目开发时新建一个分支作为备份

在使用 Git 进行项目开发时,想要在当前的 master 或其它分支基础上进行代码优化或修改时,并且在优化过程中保留一个当前状态的备份(即新建一个分支作为备份),然后继续在 master 分支上开发,你可以按照以下步…

乐观锁、悲观锁、互斥锁、读写锁

乐观锁和悲观锁是两种不同的锁机制,用于在多线程环境下解决资源竞争问题。互斥锁和读写锁是两种常见的锁类型,它们都可以用来实现乐观锁或悲观锁。 乐观锁 是一种无锁机制,它假设在多线程环境下对共享资源的操作不会发生冲突,因…

【CTF Crypto】XCTF GFSJ0522 base64 Writeup(Base64编码)

base64 元宵节灯谜是一种古老的传统民间观灯猜谜的习俗。 因为谜语能启迪智慧又饶有兴趣,灯谜增添节日气氛,是一项很有趣的活动。 你也很喜欢这个游戏,这不,今年元宵节,心里有个黑客梦的你,约上你青梅竹马…

Git泄露(续)

接上一篇补充 git config --global user.name " " git config --global user.email 邮箱地址 配置用户名和邮箱 git commit 使其处于交互区,没有使用 -m,默认用vim 来编辑和提交信息 输入要提交的内容,然后按ESC建回到命令…

华纳云:美国服务器的几种防火墙类型介绍

美国服务器的防火墙主要是用于在系统的内外网之间构建一道相对隔绝的保护屏障,用来保障美国服务器的网络安全免受恶意流量的影响,与其他地区的服务器并无本质上的不同,通常可以使用以下几种类型的防火墙: 软件防火墙:软…

「 网络安全常用术语解读 」通用配置枚举CCE详解

1. 背景介绍 NIST提供了安全内容自动化协议(Security Content Automation Protocol,SCAP)为漏洞描述和评估提供一种通用语言。SCAP组件包括: 通用漏洞披露(Common Vulnerabilities and Exposures, CVE):提供一个描述…

泰迪智能科技企业数据挖掘流程分析及特色服务优势

企业发展会沉淀大量的数据,数据中囊括了企业业务各种维度指标,通过数据挖掘和数据分析 ,让企业业务了解过去、现在和未来将要发生什么,从而更好的调整企业发展方向。泰迪智能科技企业数据挖掘平台是面向企业级用户快速处理数据构建…

C++学习第二十八课:C++ 中的智能指针详解

在 C 中,内存管理是每个程序员都需要面对的问题。在处理动态分配的内存时,如果忘记释放内存,可能会导致内存泄漏。为了解决这个问题,C11 引入了智能指针的概念。本文将详细介绍 C 中使用智能指针的方法,并结合实际案例…

并查集刷题笔记

leetcode-1971:寻找图中是否存在路径 并查集可以解决的问题是:判断两个点是否在同一个集合之中 并查集模版: 最重要的两部:将两点连接以及对某一节点寻根。 一、初始化:{init()} 将每个节点的父节点初始化为自身。 二、寻根…

nvm安装踩雷 报错‘node‘ 不是内部或外部命令

需要排查以下内容: 1.nvm install node版本号后使用nvm use node版本号进行应用 2.在安装nvm前,确保电脑上不存在之前安装过的node的相关信息,包括环境变量、之前安装的nodejs、node_global文件夹(存储全局安装的 Node.js 模块和…

永倍达 最新消息!发放消费券! 重新开网?

大家好 我是一家软件开发公司的产品经理 吴军 我又又又又又叕来蹭热度了,最近永倍达有新动作!发放消费券? 店长群最新通知 4.15号开始发放消费券 一个月之后才可以重新提现 今天是5.10号离5.18也不远了 大家拭目以待看看到底能不能提现&a…

“紧急联系人功能”的智慧守护

在当今科技融入生活的每一个角落,一款名为“蝙蝠避障”专为盲人设计的辅助应用正悄然改变着视障群体的日常出行体验。这款应用中,一个看似不起眼却至关重要的功能——“紧急联系人功能”,以其强大的实用性和人文关怀,成为了盲人朋…

一套3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用、基于C#+VC + MSSQL开发的全套PACS源码

一套3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用 PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升…

Mysql之SQL Mode问题

Mysql SQL Mode问题简谈 1. Mysql SQL Mode简介2. 常用的SQL Mode3. SQL Mode在迁移中的应用 1. Mysql SQL Mode简介 SQL Mode定义了Mysql应支持的SQL语句、数据校验等,这样可以容易在不同的环境中使用Mysql。 通过设置SQL Mode,可以完成不同严格程度的数…

halcon学习之一维测量基础

目录 创建测量矩形,获取测量句柄 gen_measure_rectangle2() 使用句柄进行测量 measure_pos() 修改参数Threshold 修改参数Transition 修改参数select 参数RowEdge,ColumnEdge,Distance …

4步快速配置Java、MySQL、Maven环境(windows)

每次入职一家新公司或者用一台其他的临时电脑或者新电脑时都要重新配置Java开发环境,很麻烦,因此我在这里记录一下快速配置环境的方式,四步搞定!此处以win为操作系统进行讲解。 第一步:下载链接 下载链接&#xff1a…

Calico 和 Flannel 区别,以及各自优缺点

Calico 和 Flannel 都是 Kubernetes 中常用的网络插件,用于在集群中提供网络通信功能,但它们有一些区别和各自的优缺点。 Calico: 特点: 基于BGP协议:Calico 使用BGP协议来实现路由,每个节点上的容器都有一…

【JavaWeb】网上蛋糕商城后台-商品管理

概念 本文讲解和实现网上蛋糕商城的后台管理系统中的商品管理功能。 商品列表 点击后台管理系统的head.jsp头部的“商品管理”功能选项,向服务器发送请求/admin/goods_list 因此需要在servlet包中创建AdminGoodsListServlet类,用于获取商品信息列表 …

linux 基础命令使用

命令 su 用于切换到另一个用户身份,通常是超级用户(root)。su命令可以用来在命令行下切换用户,也可以在脚本中使用。 语法: su [选项] [用户名] 选项: - -c:执行完命令后,立即退出su命令;…

zblog中用户中心-邀请码注册插件的导出功能补充

自己加了一个导出未使用的邀请码功能,可惜我不是入驻作者,没有权限发布,之前被一条大河拒了,他说我抄他代码,不给我过审还冷嘲热讽,我一气之下,就没继续申请了,话说我是专业搞java开…