Java基础知识点-“String“的用法

1. 概念

String是Java中非常重要的一个类,用于表示字符串。在Java中,字符串是不可变的,这意味着一旦创建了一个String对象,其内容就不能更改。本文将详细介绍Java中String类的用法,包括创建、操作、比较等。

2. 创建String对象

在Java中,有几种方法可以创建String对象:

2.1 字面量创建

直接使用双引号(“”)创建字符串,例如:

String str = "Hello, World!";

2.2 new关键字创建

使用new关键字创建字符串,例如:

String str = new String("Hello, World!");

2.3 字符数组创建

通过字符数组创建字符串,例如:

char[] chars = {'H', 'e', 'l', 'l', 'o'};
String str = new String(chars);

3. 字符串相关操作

3.1 字符串拼接

可以使用+运算符拼接字符串,例如:

String str1 = "Hello, ";
String str2 = "World!";
String result = str1 + str2;

3.2 字符串长度

使用length()方法获取字符串长度,例如:

String str = "Hello, World!";
int length = str.length();

3.3 字符串截取

使用substring()方法截取字符串,例如:

String str = "Hello, World!";
String substr = str.substring(7, 12); // 返回"World"

3.4 字符串分割

使用split()方法按照指定分隔符分割字符串,例如:

String str = "apple,banana,orange";
String[] fruits = str.split(",");

3.5 字符串查找

使用indexOf()lastIndexOf()方法查找字符串中的字符或子串,例如:

String str = "Hello, World!";
int index = str.indexOf("World"); // 返回7

3.6 字符串替换

使用replace()方法替换字符串中的字符或子串,例如:

String str = "Hello, World!";
String newStr = str.replace("World", "Java");

4. 字符串比较(常用:equals与==)

4.1 使用==比较

==运算符比较的是字符串对象的内存地址,而不是字符串内容。因此,使用==比较字符串时,只有当两个字符串对象指向同一块内存时,结果才为true。基本数据类型是判断是否相等。

String str1 = "Hello";
String str2 = "Hello";
System.out.println(str1 == str2); // 输出true

String str3 = new String("Hello");
System.out.println(str1 == str3); // 输出false

4.2 使用equals()比较

equals()方法比较的是字符串内容是否相同,推荐使用此方法比较字符串。

String str1 = "Hello";
String str2 = "Hello";
System.out.println(str1.equals(str2)); // 输出true

String str3 = new String("Hello");
System.out.println(str1.equals(str3)); // 输出true

4.3 使用equalsIgnoreCase()比较

equalsIgnoreCase()方法比较字符串内容是否相同,忽略大小写。

String str1 = "Hello";
String str2 = "hello";
System.out.println(str1.equalsIgnoreCase(str2)); // 输出true

5. 字符串格式化

Java提供了String.format()方法,用于字符串格式化。格式化字符串时,可以使用占位符%s%d等。

int age = 25;
String name = "John";
String formattedStr = String.format("My name is %s, and I'm %d years old.", name, age);

★String属于基础类型吗?基础类型有哪几种?

String是只读字符串,它并不是基本数据类型,而是一个对象。从底层源码来看是一个final类型的字符数组,所引用的字符串不能被改变,一经定义,无法再增删改。每次对String的操作都会生成新的String对象。

Java 中的基本数据类型只有 8 个:byte、short、int、long、float、double、 char、boolean;除了基本类型(primitive type),剩下的都是引用类型(reference type)。

★如何实现字符串的反转

利用字符串的拼接(charAt()方法),把后遍历出来的放在前面即可实现反转

利用字符串的拼接(toCharArray()处理成字符数组的方法),把后遍历出来的放在前面即可实现反转

利用StringBuffer的reverse()方法

​​​​​​​★String str=”aaa”,与String str=new String(“aaa”)一样吗?

String str = “aaa”  相当于从缓存区获取”aaa”对象,如果没有则在缓存区创建对象,再指向。

String str = new String(“aaa”) 相当于开辟一个新的内存区域,新的内存区域指向在缓存区新建的一个”aaa”对象。

​​​​​​​​​​​​​​★String StringBuffer 和 StringBuilder 的区别是什么?

区别

String

StringBuffer

StringBuilder

可变

final 不可变

可变

可变

线程安全性

安全

安全

synchronized 修饰方法

不安全

使用场景

无须修改的字符串

多线程环境

单线程环境,高效

改变字符串时

每次新建

缓存中获取

复制再创建

猜你喜欢

转载自blog.csdn.net/2401_86844317/article/details/142862016