当前位置: 首页 > article >正文

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 对象的常见方式。每种方式都有其特定的用途和场景,开发者可以根据具体需求选择合适的方法。


http://www.kler.cn/a/468136.html

相关文章:

  • 【Redis经典面试题七】Redis的事务机制是怎样的?
  • TPS和QPS的区别
  • Linux(Centos 7.6)命令详解:ls
  • 如何使用SparkSql
  • 计算机网络练习题
  • 【踩坑指南:2025年最新】如何在Linux(Ubuntu)启动第一个Scala Hello World程序(Scala3)
  • 【SQL serve】教材数据库(6)
  • 外观模式——C++实现
  • Ubuntu 安装英伟达显卡驱动问题记录
  • 面试场景题系列:设计爬虫系统
  • 新能源电动汽车动力电池技术
  • OSPF一些基础概念
  • 云从科技Java面试题及参考答案
  • STM32F1学习——PWMI模式(IC输入捕获)
  • uniapp H5页面实现懒加载
  • Fireworks AI:图像/PDF非文本内容转LLM可读文本
  • pytorch torch.scatter_reduce函数介绍
  • 使用Java Selenium修改打开页面窗口大小
  • 线程-8-日志_线程池
  • 比较 FreeSWITCH 的 asr 事件和回调函数
  • docker 转移文件到容器内部 以修改nextcloud添加域名信任 为例子
  • 【面试】后端开发面试中常见数据结构及应用场景、原理总结
  • 深入解析桥接模式、NAT模式与仅主机模式
  • 大模型微调技术: 从基于Stable Diffusion的绘画谈起
  • ceph文件系统
  • 自主可控,体验跃升丨恒拓高科亮相“HDD·广东鸿蒙生态伙伴论坛”