Java-字符串/String类

本文详细介绍了Java中字符串的创建与操作,包括使用String类的各种构造方法创建字符串,以及字符串的连接、获取信息、替换、分割和大小写转换等常用API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    String类是Java中一个比较特殊的类,字符串即String类,它不是Java的基本数据类型之一,但可以像基本数据类型一样使用,声明与初始化等操作都是相同的,是程序经常处理的对象,所以学好String的用法很重要。

一、创建字符串

在Java中用String类的构造方法来创建字符串变量,常用构造方法如下:
1. 使用String()方法初始化一个新创建的String对象。
String s = new String();

2. 使用String(char a[])方法创建String对象。

char a[] = {'h','e','l','l','o'};
String s = new String(a);

也可以写成String s = new String("hello"); 

3. 使用String(char a[], int offset, int length)方法创建对象。

char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a, 2, 4);

也可以写成String s = new String("uden");offset表示开始截取字符串的位置(从0开始),length表示截取长度。所以此例表示从数组a中下标为2的元素‘u’开始截取,截取长度为4,所以截取出的字符串为“uden”。

二、字符串操作

下面主要写了一些常用的API

1. 字符串连接

当连接多个字符串时,在每两个连接的字符串之间用“+”相连,“+”就是字符串的连接符,连接之后生成一个新的字符串。

String s1 = new String("hello");
String s2 = new String("world");
String  s = s1 + " " + s2;

将s1、空格、s2进行连接,运行结果就是“hello world”。

当字符串和其他数据类型连接时,同样使用“+”连接符,连接之后的返回值是字符串。

 2. 获取字符串信息

对一个字符串进行操作,我们首先需要知道它的长度,使用String类的length()方法可以获取声明的字符串对象的长度。

String s = "We are students";
System.out.println("字符串的长度是 : " + s.length());

这里要说明的是中间的空格也是属于s这个字符串

String类中提供了indexOf()和lastIndexOf()方法来获取指定字符的索引位置。区别在于,前者返回的是搜索的字符首次出现的位置的索引,后者返回的是搜索的字符最后出现位置的索引。

String str = "We are students";
System.out.println(str.indexOf("s"));        // s首次出现的位置索引
System.out.println(str.lastIndexOf("s"));   // s最后一次出现的位置索引

运行结果是7和14。

3.替换字符

使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。(replace)该替换从字符串的开头朝末尾执行,例如,用 "hello" 替换字符串 "o" 中的 "w" 将生成 "hellw" 。

String s = "hello";
String replace = s.replace('o','w');
System.out.println(replace);

4.分割字符串

每个子字符串都由另一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。

String s = "1-2-3";
String[] split = s.split("-");
打印要用数组的打印方式出来可以看出效果:如 System.out.println(Arrays.toString(split));

6. 字母的大小写转换

String类还提供了字母的大小写转换的方法,即toLowerCase()和toUpperCase()方法,语法格式如下:

str.toLowerCase()
str.toUpperCase()

关于更多的API,小伙伴可以去查看API中文文档里面都有详细的介绍,下面附上网页链接:

三、字符串生成器

这里简单说一下StringBuffer和StringBuilder两个类(了解)

1. StringBuffer类

线程安全的可变字符序列,可将字符串缓冲区安全地用于多个线程

StringBuffer 上的主要操作是 appendinsert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

2. StringBuilder类

一个可变的字符序列,

主要操作跟StringBuffer是差不多的,

StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用 StringBuffer。 

补充说明:StringBuffer和StringBuilder再字符串操作中都可以使用,首先因为字符串是一个不可变的常量,所以有些时候要用到这两个类,使用了这个类后要在后面使用toString()方法转为String
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值