Java中String对象创建的方式

        在Java中,String 对象是使用非常频繁的一种对象类型,用于表示字符串。创建 String 对象有多种方式,下面将详细介绍这些方法:

1. 使用字符串字面量


这是最简单和最常用的创建 String 对象的方式。当使用双引号(")包围的文本时,Java 会自动创建一个 String 对象。

String str = "Hello, World!";

这种方式创建的字符串对象会被存储在字符串常量池中,如果池中已经存在相同内容的字符串,则直接返回池中的对象引用。

2. 使用 new 关键字


使用 new 关键字可以显式地创建一个新的 String 对象。

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

这种方式会在堆内存中创建一个新的 String 对象,即使字符串常量池中已经存在相同内容的字符串。

3. 使用 String 类的构造方法


String 类提供了多个构造方法来创建字符串对象。

使用字符数组创建字符串:

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


使用字节数组创建字符串:

byte[] byteArray = {72, 101, 108, 108, 111}; // ASCII values for "Hello"
String str = new String(byteArray);


使用 StringBuilder 或 StringBuffer 创建字符串:

StringBuilder sb = new StringBuilder("Hello");
String str = new String(sb);

4. 使用 + 运算符拼接字符串


虽然 + 运算符不直接创建字符串,但它可以用来拼接字符串,最终会创建一个新的 String 对象。

String str1 = "Hello";
String str2 = " World!";
String str = str1 + str2; // 创建了一个新的 String 对象

5. 使用 String.valueOf() 方法


String 类提供了一系列的 valueOf() 静态方法,可以将基本数据类型或对象转换为字符串。

int num = 123;
String str = String.valueOf(num); // "123"

6. 使用 String.format() 方法

String str = String.format("Hello, %s! Today is %tA.", "World", new Date());

7. 使用 java.nio.charset 包下的类


可以使用 java.nio.charset 包下的类,如 Charset 和 CharsetEncoder,来创建字符串。

Charset charset = Charset.forName("UTF-8");
ByteBuffer byteBuffer = charset.encode("Hello, World!");
String str = charset.decode(byteBuffer).toString();

8. 使用 java.util.Scanner 类


Scanner 类可以用来解析字符串,虽然它主要用于读取输入,但也可以用来创建字符串。

Scanner scanner = new Scanner("Hello, World!");
String str = scanner.nextLine();
scanner.close();

9. 使用 Files 类和 Paths 类读取文件内容

String str = Files.readString(Paths.get("path/to/file.txt"));


Files 类提供了 readString() 方法,可以直接读取文件内容为字符串。


        以上就是在Java中创建 String 对象的常见方式。每种方式都有其特定的用途和场景,开发者可以根据具体需求选择合适的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值