首页 > 编程语言 >Java String 类详解

Java String 类详解

时间:2024-06-13 10:04:55浏览次数:10  
标签:Java String System println 详解 str 字符串 World

在Java中,String类是一个非常重要的类,用于创建和操作字符串。字符串是字符的序列,它们被广泛应用于各种编程任务中,如文本处理、用户输入/输出、网络编程等。下面将详细介绍String类的一些基本特性和常用方法。

1. 字符串的创建

在Java中,可以使用多种方式创建字符串对象。

使用字面值

String str1 = "Hello, World!";

这里,str1是对字符串常量池中的"Hello, World!"的引用。

使用new关键字

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

使用new关键字会创建一个新的String对象,即使字符串的内容与字符串常量池中的某个字符串相同。

2. 字符串的不可变性

String类是不可变的,这意味着一旦一个字符串被创建,它的内容就不能被修改。但是,你可以通过创建新的字符串对象来“改变”字符串的内容。

String str = "Hello";
str = str + ", World!"; // 这里没有修改str的内容,而是创建了一个新的字符串对象
System.out.println(str); // 输出: Hello, World!

3. 常用的String方法

字符串长度

String str = "Hello";
int length = str.length(); // 获取字符串的长度
System.out.println(length); // 输出: 5

字符串连接

除了使用+操作符进行字符串连接外,还可以使用concat()方法。

String str1 = "Hello";
String str2 = "World";
String result = str1.concat(" ").concat(str2); // 使用concat方法连接字符串
System.out.println(result); // 输出: Hello World

字符串比较

  • equals(Object anObject):比较字符串的内容是否相等。
  • equalsIgnoreCase(String anotherString):比较字符串的内容是否相等,忽略大小写。
  • compareTo(String anotherString):按字典顺序比较两个字符串。
String str1 = "Hello";
String str2 = "hello";
System.out.println(str1.equals(str2)); // 输出: false
System.out.println(str1.equalsIgnoreCase(str2)); // 输出: true
System.out.println(str1.compareTo(str2)); // 输出: 正数,因为"H"在"h"之后

字符串查找

  • indexOf(int ch)indexOf(String str):返回指定字符或子字符串第一次出现的索引,如果未找到则返回-1。
  • lastIndexOf(int ch)lastIndexOf(String str):返回指定字符或子字符串最后一次出现的索引,如果未找到则返回-1。
String str = "Hello, World!";
int index = str.indexOf("World"); // 查找"World"第一次出现的索引
System.out.println(index); // 输出: 7

字符串截取

  • substring(int beginIndex)substring(int beginIndex, int endIndex):返回一个新的字符串,它是此字符串的一个子字符串。
String str = "Hello, World!";
String subStr = str.substring(7); // 从索引7开始截取到字符串末尾
System.out.println(subStr); // 输出: World!

字符串替换

  • replace(char oldChar, char newChar)replace(CharSequence target, CharSequence replacement):返回一个新的字符串,它是通过用newCharreplacement替换此字符串中出现的所有oldChartarget子字符串得到的。
String str = "Hello, World!";
String newStr = str.replace("World", "Java"); // 替换"World"为"Java"
System.out.println(newStr); // 输出: Hello, Java!

字符串转换

  • toLowerCase()toUpperCase():将字符串中的所有字符转换为小写或大写。
  • trim():去除字符串前后的空白字符。
String str = "   Hello, World!   ";
String lowerStr = str.toLowerCase(); // 转换为小写
String upperStr = str.toUpperCase(); // 转换为大写
String trimmedStr = str.trim(); // 去除前后空白字符
System.out.println(upperStr); // 输出:   HELLO, WORLD!  
System.out.println(trimmedStr); // 输出: Hello, World!

字符串分割

  • split(String regex):根据给定的正则表达式的匹配拆分此字符串。
String str = "apple,banana,orange";
String[] fruits = str.split(","); // 根据逗号分割字符串
for (String fruit : fruits) {
    System.out.println(fruit); // 输出: apple, banana, orange
}

字符串格式化

  • String.format(String format, Object... args):使用指定的格式字符串和参数返回一个格式化的字符串。
String formatted = String.format("The number is %d and the text is %s", 123, "example");
System.out.println(formatted); // 输出: The number is 123 and the text is example

4. 字符串的常用静态方法

字符串连接

  • String.join(CharSequence delimiter, CharSequence... elements):使用指定的分隔符将指定的元素数组中的所有字符串连接起来。
String delimiter = ", ";
String[] words = {"apple", "banana", "orange"};
String result = String.join(delimiter, words);
System.out.println(result); // 输出: apple, banana, orange

字符串值比较

  • String.caseCompareTo(String str1, String str2):按字典顺序比较两个字符串,不考虑大小写。
int comparison = String.CASE_INSENSITIVE_ORDER.compare("apple", "Apple");
System.out.println(comparison); // 输出: 0,因为不区分大小写时两者相同

5. 字符串的性能考虑

由于String类是不可变的,每次对字符串的修改(如连接、替换等)都会创建新的字符串对象,这可能导致不必要的内存分配和性能下降。在处理大量字符串或需要频繁修改字符串的情况下,可以使用StringBuilderStringBuffer类,它们提供了可变字符串的构建功能,并优化了性能。

总结

String类是Java中用于处理字符串的核心类,它提供了丰富的方法和功能来创建、修改、比较、查找和格式化字符串。了解String类的常用方法和特性,可以帮助你更高效地处理字符串数据。同时,在处理大量字符串或需要频繁修改字符串时,记得考虑使用StringBuilderStringBuffer类来提高性能。

标签:Java,String,System,println,详解,str,字符串,World
From: https://blog.csdn.net/2401_85606134/article/details/139645588

相关文章

  • java基于Vue+Spring boot前后端分离架构开发的一套UWB技术高精度定位系统源码
    java基于Vue+Springboot前后端分离架构开发的一套UWB技术高精度定位系统源码系统采用UWB高精度定位技术,可实现厘米级别定位。UWB作为一种高速率、低功耗、高容量的新兴无线局域定位技术,目前应用主要聚焦在室内外精确定位。在工业自动化、物流仓储、电力巡检、煤矿施工、自动......
  • Java毕业设计-基于springboot开发的师生健康信息管理系统-毕业论文(附毕设源代码)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、管理员功能模块2、学生功能模块3、教师功能模块四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的师生健康信息管理系统-毕......
  • Java毕业设计-基于springboot开发的实习管理系统-毕业论文(附毕设源代码)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、管理员功能模块实现1.1管理员登录1.2实习管理1.3公告管理1.4公告类型管理四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发......
  • Java毕业设计-基于springboot开发的失物招领平台设计与实现-毕业论文(附毕设源代码)
    文章目录前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求/流程分析3、系统功能结构三、系统实现展示1、用户信息管理2、失物招领管理3、失物认领管理4、公告信息管理四、毕设内容和源代码获取总结Java毕业设计-基于springboot开发的失物招领......
  • 【计算机网络】TCP报文详解
    认识TCP报头其实协议的形式都是一个结构化的数据,TCP协议也不例外。一起来看看TCP协议的报头是怎么样的。以上就是TCP报头,实际上是一个结构化的数据,也就是一个结构体。例如:structtcp_hdr{unsignedintstc_port:16;unsignedintdesc_port:16;unsi......
  • Java学习 - MySQL数据增删更清操作 实例
    INSERTINTO-插入语法1-【常用;支持多行;可用于子查询】INSERTINTO表名(字段列表)VALUES(字段值列表),(字段值列表),(字段值列表),(字段值列表);注意如果想设置空值,可以用NULL表示字段列表和字段值列表必须一一对应字段列表的顺序可以和表定义顺序不同可以省略......
  • Java学习 - MySQL数据库常用命令 实例
    进入MySQL命令行>>mysql-u用户名-p>>输入密码查看MySQL的版本--方法1:通过命令行>>mysql--version>>mysql-V--方法2:通过MySql内置函数>>SELECTVERSION();查看所有的数据库SHOWDATABASES;打开指定的数据库USEtables;查看当前数据库所有的表......
  • Java学习 - MySQL数据库导入和查询方式 实例
    目录练习用数据库导入基础查询条件查询排序查练习用数据库导入下载相关资源中的myemployess.sql执行sql脚本sourcemyemployees.sql;基础查询SELECT子句SELECT查询字段FROM表名;--查询字段包括:表的字段,常量值,表达式,函数--查询的结果是一个虚拟的表查......
  • Java 学生管理系统(基础增删改查)
    目录1.学生类的定义2.学生管理系统主程序3.功能实现 4.代码结构及结果展示4.总结5.关于作者1.学生类的定义首先,我们需要定义一个Students类来表示学生对象。这个类包含学生的ID、姓名、年龄和地址等属性,并提供了相应的构造方法和访问方法。packageStudent;......
  • Java项目:基于SSM框架实现的家居商城系统分前后台【ssm+B/S架构+源码+数据库+毕业论文
    一、项目简介本项目是一套基于SSM框架实现的家居商城系统包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,eclipse或者idea确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值二、技术实现......