Java中常用的工具类——字符串类

这篇具有很好参考价值的文章主要介绍了Java中常用的工具类——字符串类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:字符串类是编程中最常用的一种数据类型,比较重要❗


前言

提示:这里可以添加本文要记录的大概内容:

  • Java中的字符串类是java.lang.String。它提供了许多方法来处理字符串,例如截取、拼接、替换、比较等等。
  • 字符串类是不可变的,这意味着一旦创建了一个字符串对象,就不能更改字符串的内容。如果需要更改字符串,必须创建一个新的字符串对象。
  • Java中的字符串是 Unicode 字符序列,可以包含任何字符,包括汉字和特殊字符。
  • 字符串可以通过使用单引号或双引号来创建。使用双引号创建的字符串可以包含空格和特殊字符,使用单引号创建的字符串只能包含一个字符。
  • Java中有许多其他类也可以处理字符串,例如StringBuffer和StringBuilder。这些类提供了更多的方法来修改字符串,但是它们不是线程安全的,所以在多线程环境中使用时要小心。

Java中常用的工具类——字符串类


提示:以下是本篇文章正文内容,下面案例可供参考

一、字符串类创建对象方式

静态创建

  1. 静态创建:直接使用"字符串内容"

静态方式创建的字符串对象,存储在字符串常量池中

相同内容的字符串对象在常量池中只会创建一个对象
原因:尽可能节省内存空间

public static void main(String[] args) {
	String s1 = "汤姆要";
	String s2 = "汤姆要";
	System.out.println(s1==s2);
}

Java中常用的工具类——字符串类

动态创建

  1. 动态创建:使用new构造方法

动态方式创建的字符串存储在堆区
每创建一个都要占据一个新空间

public static void main(String[] args) {
	String s1 = new String("抓杰瑞");
	String s2 = new String("抓杰瑞");		
	System.out.println(s1==s2);
}

二、String字符串内容不可改变

String 字符串对象创建后内容不能改变
一旦改变时间上产生一个新的字符串

public static void main(String[] args) {
	String s1 = "汤姆要";
	String s2 = "抓杰瑞";
	s1 = s1+s2;
	System.out.println(s1);	
}

Java中常用的工具类——字符串类

三、字符串常用方法

获取字符串长度 length方法

返回一个字符串长度

在Java中,字符串类中的 length() 方法返回字符串的长度。它返回一个 int 值,表示字符串中字符的数量。

例如,下面的代码返回字符串 “Hello, World!” 的长度:

public static void main(String[] args) {
	String str = "Hello, World!"; 
	System.out.println(str.length());  // 13
}

在这个例子中,字符串 str 的长度是 13,因为它包含 13 个字符(包括空格和标点符号)。

需要注意的是,length() 方法返回的是字符串的长度,而不是容量。字符串的容量是指底层字符数组大小,而长度是指字符串中实际字符的数量。

获取字符串中的字符 charAt方法

获取指定下标位置的字符,下标从0开始

public static void main(String[] args) {
	String str = "hello world";
	System.out.println(s.charAt(3));
}

获取子串 substring方法

获取指定下标范围的子串

public static void main(String[] args) {
	String str = "hello world";
	//substring(int beginIndex,int endIndex) 包括开始,不包括结束
	System.out.println(str.substring(1,6));  //ello 
	//从下标为1的位置开始截取,一直到下标为6的位置(不包含6)
	
	System.out.println(str.substring(6));  //world
	//substring(int beginIndex) 从开始到结束
}

定位字符或者字符串

在Java中,indexOf和lastIndexOf方法可以用来搜索字符串中指定字符或子字符串的位置,它们的用法如下:

indexOf:获取某个指定字符或字符串第一次出现的下标位置
lastIndexOf:获取某个指定字符或字符串最后一次出现的下标位置

indexOf 方法

获取某个指定字符或字符串第一次出现的下标位置

如果搜索到指定的字符或子字符串,则返回该字符或子字符串所在位置的下标值
返回值为-1,则代表此字符或字符串没有出现

public static void main(String[] args) {
	String str = "hello world";
	System.out.println(str.indexOf('y'));  //单个字符''
	//输出-1
}

调用indexOf方法中结果为-1表示未查询到指定的字符或字符串。

搜索指定字符

public static void main(String[] args) {
	String str = "hello world";
	System.out.println(str.indexOf('h'));  //单个字符''
	//输出0
}

搜索指定字符串

public static void main(String[] args) {
	String str = "hello world";
	System.out.println(str.indexOf("world")); //"字符串"
	//输出6
}

在以上示例中,调用indexOf方法分别搜索字符’h’和字符串"world"在原始字符串中第一次出现的位置,最终返回结果为0和6

lastIndexOf 方法

lastIndexOf方法与indexOf方法类似,不同的是它是获取某个指定字符或字符串最后一次出现的下标位置

public static void main(String[] args) {
	String str = "hello world";	
	System.out.println(str.lastIndexOf('o')); //搜索指定字符
	System.out.println(str.lastIndexOf("wor")); //搜索指定字符串
}

在以上示例中,调用lastIndexOf方法分别搜索字符’o’和字符串"wor"在原始字符串中最后一次出现的位置,最终返回结果为7和6

替换字符串或字符

在Java中,有多种方法可以替换字符串或字符,这里介绍其中两种比较常见的方式:

他并不是真的替换了,而是返回了新的串,因为字符串不可改变

replace(char a,char b)将字符串中出现的a替换成b
replaceAll(String a,String b)将字符串中出现的a替换成字符串b

replace方法

replace方法用于替换字符串中的指定字符或字符串,它有两个参数,第一个参数为要被替换的字符或字符串,第二个参数为替换后的新字符或新字符串。

方法签名如下:

public static void main(String[] args) {
	String str = "hello world";	
	//替换指定字符,将字符串中的所有'o'字符替换成'*'字符
	System.out.println(str.replace('o', '*')); 
	//替换指定字符串,将字符串中的"world"字符串替换成"Java"字符
	System.out.println(str.replaceAll("world", "Java")); 
}

在以上示例中,调用replace方法分别替换字符串中的’o’字符和"world"字符串,返回替换后的新字符串

replaceAll方法

replaceAll方法用于替换字符串中的匹配正则表达式的部分,它有两个参数,第一个参数为要被替换部分的正则表达式,第二个参数为替换后的新字符串。

例如:文章来源地址https://www.toymoban.com/news/detail-482288.html

String str = "123 abc 456 def";
String newStr = str.replaceAll("\\d+", "X"); //将字符串中所有的数字都替换成'X'字符

System.out.println(newStr); //输出X abc X def

在以上示例中,调用replaceAll方法使用正则表达式"\d+"匹配字符串中所有的数字,将其替换成'X'字符,输出替换后的新字符串。

比较字符串内容

equals方法,是严格区分大小写的比较
equalsIgnoreCase 方法,不区分大小写比较

实际应用中比较字符串内容是否相等,必须使用equals

在Java中比较字符串内容的常用方法有以下几种:

equals方法

equals方法是String类中用来比较字符串内容是否相同的方法,它比较字符串对象中的字符序列是否相等。
如果相等,返回true;否则返回false。

例如:

String str1 = "hello";
String str2 = "hello";
String str3 = "Hello";

System.out.println(str1.equals(str2)); //输出true
System.out.println(str1.equals(str3)); //输出false

在以上示例中,使用equals方法比较两个字符串对象的内容,结果str1和str2内容相同,返回true;而str1和str3内容不同,返回false。

equalsIgnoreCase方法

equalsIgnoreCase方法和equals方法相似,唯一不同的是它忽略字符大小写。
如果忽略大小写后两个字符串内容相等,返回true;否则返回false。

例如:

String str1 = "hello";
String str2 = "HELLO";

System.out.println(str1.equalsIgnoreCase(str2)); //输出true

在以上示例中,使用equalsIgnoreCase方法比较两个字符串对象的内容,忽略了字符大小写,结果返回true。

大小写转换

toUpperCase 将小写字母转换成大写

toLowerCase 将大写字母转换成小写

在Java中,可以使用以下方法将字符串中的字符转换为大写或小写:

toUpperCase方法

toUpperCase方法是String类中的方法,用于将字符串中的所有小写字母转换成大写字母。方法返回一个新的字符串对象,原始字符串不发生改变。

例如:

public static void main(String[] args) {
	String str = "hello world";
	System.out.println(str.toUpperCase()); //输出"HELLO WORLD"
}

在以上示例中,使用toUpperCase方法将字符串str中的所有小写字母转换为大写字母,并将结果保存在一个新的字符串对象中。

toLowerCase方法

toLowerCase方法是String类中的方法,用于将字符串中的所有大写字母转换成小写字母。方法返回一个新的字符串对象,原始字符串不发生改变。

例如:

public static void main(String[] args) {
	String str = "HELLO WORLD";
	System.out.println(str.toLowerCase()); //输出"hello world"
}

在以上示例中,使用toLowerCase方法将字符串str中的所有大写字母转换为小写字母,并将结果保存在一个新的字符串对象中。

前缀和后缀

startsWith:判断字符串是否以指定的字符串开头

endsWith:判断字符串是否以指定的字符串结尾

Java字符串中的前缀和后缀是指字符串开头和结尾的部分。
可以使用String类的startsWith()方法来判断一个字符串是否以指定的前缀开始,使用endsWith()方法来判断一个字符串是否以指定的后缀结束

例如:

public static void main(String[] args) {
	String str = "Hello, World!";
    System.out.println(str.startsWith("World!")); //false
    System.out.println(str.endsWith("World!")); //true
}

到了这里,关于Java中常用的工具类——字符串类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java字符串常用函数 详解5000字 (刷题向 / 应用向)

    直接定义字符串是指使用双引号表示字符串中的内容,例如\\\"Hello Java\\\"、\\\"Java 编程\\\"等。具体方法是用字符串常量直接初始化一个 String 对象,示例如下: 1.    String str=\\\"Hello Java\\\"; 或者 1.    String str; 2.    str=\\\"Hello Java\\\"; 注意:字符串变量必须经过初始化才能使用。 String str2

    2024年02月05日
    浏览(33)
  • java 判断字符串中有汉字 (常用正则表达式)

    今天在开发中碰到了判断字符串中是否有汉字的问题,方便起见,记录下来以便后期查看。 1、判断汉字 2、判断数字 3、常用的正则表达式( 通过 Java常用正则表达式_正则表达式0到9_欧尼熊不懂的博客-CSDN博客) (1)校验数字的正则表达式 (2)校验字符的正则表达式 (

    2024年02月11日
    浏览(41)
  • JAVA - 字符串工具类StringBuilder和StringBuffer

    目录 文章目录 前言 二.常用方法演示 1.append()用于将指定的字符串添加到当前StringBuilder对象的末尾 2.delete():用于删除StringBuilder对象中指定位置的字符。  3.insert():用于在指定位置插入指定字符串。  4.replace():用于替换指定位置的字符或字符串。 5.reverse():用于将StringBu

    2024年02月06日
    浏览(39)
  • Apache StringUtils:Java字符串处理工具类

    在我们的代码中经常需要对字符串判空,截取字符串、转换大小写、分隔字符串、比较字符串、去掉多余空格、拼接字符串、使用正则表达式等等。如果只用 String 类提供的那些方法,我们需要手写大量的额外代码,不然容易出现各种异常。现在有个好消息是:org.apache.commo

    2024年01月16日
    浏览(32)
  • Java工具类——json字符串格式化处理

    在我们拿到一团未经格式化的json字符串时,非常不方便查看,比如这样 因此随手写了个工具类用来格式化json。注意,原json字符串必须语法无误,并且不包含换行、空格、缩进等,否则会保留下来。 ok废话不多说上代码 运行后效果

    2024年01月17日
    浏览(37)
  • 【手写数据库toadb】SQL字符串如何被数据库认识? 词法语法分析基础原理,常用工具

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年02月08日
    浏览(37)
  • 常用的将Java的String字符串转具体对象的几种方式

    Java对象以User.class为例 ,注意:代码中使用到了lombok的@Data注解 以上就是常用的几种String转具体的java对象操作

    2024年04月11日
    浏览(39)
  • Java中字符串拼写常用方法和高级技巧,举例并说明,加上注释和实际运行效果说明

    Java中字符串拼写常用方法和高级技巧,举例并说明,加上注释和实际运行效果说明 目录 1、使用\\\"+\\\"操作符拼接字符串 2、使用StringBuilder类拼接字符串 3、使用String.format()方法格式化字符串 4、使用String.concat()方法拼接字符串 5、使用String.join()方法拼接字符串 6、使用StringBuffe

    2024年02月11日
    浏览(24)
  • 使用java.security.SecureRandom安全生成随机数和随机字符串工具类

            在Java中,可以使用java.security.SecureRandom和java.util.Random类来生成随机数,但是它们之间有以下区别:         1、随机性强度: SecureRandom 类提供了更高的随机性强度。它使用了更安全的算法和种子生成器,以提供更高质量的随机数。这对于需要高度安全性的应用程

    2024年04月26日
    浏览(32)
  • 【Java-Util】Hutool工具类判断字符串、对象为空的使用

    判断字符串、包装类、集合、对象是否为空。 字符串工具-StrUtil (hutool.cn) str1为null,str2是字符串,str3为空字符串,str4是包含不可见字符(空格等)的字符串。 使用 StrUtil.isEmpty(str) 和 StrUtil.isBlank(str) 总结: isBlank与 isEmpty(CharSequence) 的区别是: isBlank方法会校验空白字符,且

    2024年02月02日
    浏览(100)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包