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

92. Java 数字和字符串 - 字符串

文章目录

  • 92. Java 数字和字符串 - 字符串
    • 一、创建字符串
      • 1.1 使用字符串文字
      • 1.2 使用构造函数
    • 二、字符串的长度与字符访问
      • 2.1 获取字符串长度
      • 2.2 访问字符串中的字符
      • 2.3 将字符串转换为字符数组
        • 方式一:手动循环
        • 方式二:使用 `getChars()` 方法
      • 2.4 反转字符串示例
    • 三、字符串连接
      • 3.1 使用 `concat()` 方法
      • 3.2 使用 + 运算符
    • 四、多行字符串
    • 五、格式化字符串
    • 总结

92. Java 数字和字符串 - 字符串

Java 编程中,字符串是最常用的数据类型之一。字符串表示为一系列字符,是不可变的对象,由 String 类来表示和操作。


一、创建字符串

1.1 使用字符串文字

最直接的创建方式是使用双引号括起的字符串文字。当编译器遇到字符串文字时,会自动创建一个 String 对象。例如:

String greeting = "Hello world!";

在这行代码中,“Hello world!” 就是一个字符串文本,编译器会为它创建一个不可变的 String 对象。

1.2 使用构造函数

我们也可以使用 new 关键字结合 String 构造函数来创建字符串。String 类提供了多达 13 个构造函数,可以通过不同的源来初始化字符串。例如,使用字符数组来构造字符串:

char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray);
System.out.println(helloString);  // 输出: hello.

注意:由于 String 是不可变的,一旦创建后就无法修改。如果看似“修改”字符串的方法实际上都是返回了一个新字符串。


二、字符串的长度与字符访问

2.1 获取字符串长度

String 类提供了 length() 方法,用于获取字符串中字符的个数。例如:

String palindrome = "Dot saw I was Tod";
int len = palindrome.length();  // len 为 17

2.2 访问字符串中的字符

使用 charAt(int index) 方法,可以获取字符串中指定位置的字符。注意,字符下标从 0 开始。例如:

char firstChar = palindrome.charAt(0);  // 'D'

2.3 将字符串转换为字符数组

如果需要对字符串进行逐字符处理(例如反转字符串),可以先将字符串转换为字符数组。有两种常用方法:

方式一:手动循环
int len = palindrome.length();
char[] tempCharArray = new char[len];
for (int i = 0; i < len; i++) {tempCharArray[i] = palindrome.charAt(i);
}
方式二:使用 getChars() 方法

getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 方法可以将字符串(或其一部分)复制到目标字符数组中。例如:

char[] tempCharArray = new char[len];
palindrome.getChars(0, len, tempCharArray, 0);

2.4 反转字符串示例

下面是一个完整示例,展示如何将字符串反转:

public class StringDemo {public static void main(String[] args) {String palindrome = "Dot saw I was Tod";int len = palindrome.length();char[] tempCharArray = new char[len];char[] reversedArray = new char[len];// 使用 getChars() 方法将字符串复制到字符数组中palindrome.getChars(0, len, tempCharArray, 0);// 反转字符数组for (int j = 0; j < len; j++) {reversedArray[j] = tempCharArray[len - 1 - j];}// 创建新的字符串String reversePalindrome = new String(reversedArray);System.out.println("反转后的字符串为: " + reversePalindrome);}
}

运行该程序将输出:

doT saw I was toD

三、字符串连接

3.1 使用 concat() 方法

String 类提供了 concat(String str) 方法,用于连接两个字符串,并返回新字符串:

String result = "My name is ".concat("Rumplestiltskin");
System.out.println(result);  // 输出: My name is Rumplestiltskin

3.2 使用 + 运算符

更常见的是使用 + 运算符进行字符串连接,这种方式在 print 语句中非常直观:

String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
// 输出: Dot saw I was Tod

在连接过程中,如果某个操作数不是 String 类型,Java 会自动调用其 toString() 方法将其转换为字符串。


四、多行字符串

Java SE 15 之前,文本字符串不能跨越多行书写,必须使用 + 运算符将每行连接起来;但从 Java SE 15 开始,引入了【文本块】(text blocks),允许直接书写多行字符串:

String html = """<html><body><p>Hello, world</p></body></html>""";
System.out.println(html);

这种方式不仅简洁,而且提高了多行字符串的可读性,特别适用于 HTMLSQLJSON 等格式。


五、格式化字符串

除了直接拼接字符串外,Java 还提供了格式化字符串的方法,例如 String.format()。这与 System.out.printf() 类似,只不过返回一个字符串对象而不是直接输出到控制台。例如:

String fs = String.format("The value of the float variable is %f, while the value of the integer variable is %d, and the string is %s",3.14159, 42, "Java");
System.out.println(fs);

输出结果:

The value of the float variable is 3.141590, while the value of the integer variable is 42, and the string is Java

总结

  • 字符串创建:可以使用字符串文字或构造函数创建 String 对象;字符串一经创建不可更改。
  • 字符串操作:通过 length()charAt()getChars() 等方法可以获取字符串信息和操作字符。
  • 字符串连接:可以使用 concat() 方法或 + 运算符进行连接;非 String 对象会自动转换为字符串。
  • 多行字符串:从 Java SE 15 开始支持文本块,简化多行字符串的书写。
  • 格式化字符串:利用 String.format() 方法可以生成格式化的字符串,方便重复使用和国际化支持。

通过以上内容和示例,希望大家能够深入理解和灵活运用 Java 中的字符串操作,从而编写出高效且易于维护的代码。

相关文章:

  • 跟单业务并发量分析
  • 将 node.js 项目作为后台进程持续运行
  • 强网杯 2024 PyBlockly
  • RuoYi前后端分离框架实现前后端数据传输加密(一)之后端篇
  • 【PhysUnits】15.5 引入P1后的标准化表示(standardization.rs)
  • Python:操作Excel公式
  • Adobe Acrobat 9.1.2 Pro (install)
  • 用不太严谨的文字介绍遥测自跟踪天线的基本原理
  • Linux设置静态IP
  • python:在 PyMOL 中如何查看和使用内置示例文件?
  • STM32CubeMX定时器配置
  • 俄军操作系统 Astra Linux 安装教程
  • 【Netty系列】TCP协议:粘包和拆包
  • 腾讯面试手撕题:返回行递增有序矩阵第k小的元素
  • 2025年5月个人工作生活总结
  • 【LLM相关知识点】关于LangChain框架学习简单整理(三)
  • C# 类和继承(使用基类的引用)
  • Accurate DOS/ISMEAR=-5
  • 大模型运维过程中常见的一些操作
  • 如何真正实现软件开发“快”起来:破除误区与落地实践
  • 专门做游戏交易的网站有哪些/谷歌seo是什么职业
  • 网站首页客服qq做超链接/线上推广渠道有哪些
  • 交友网站建设的栏目规划/seo教程技术
  • 怎么查网站是哪个公司做的/百度推广怎么赚钱
  • 温州网站推广/网络营销策划方案800字
  • 网站做的支付宝接口/关键词站长工具