《Java零基础教学》是一套深入浅出的 Java 编程入门教程。全套教程从Java基础语法开始,适合初学者快速入门,同时也从实例的角度进行了深入浅出的讲解,让初学者能够更好地理解Java编程思想和应用。
本教程内容包括数据类型与运算、流程控制、数组、函数、面向对象基础、字符串、集合、异常处理、IO 流及多线程等 Java 编程基础知识,并提供丰富的实例和练习,帮助读者巩固所学知识。本教程不仅适合初学者学习,也适合已经掌握一定 Java 基础的读者进行查漏补缺。
前言
大家好!我是不熬夜崽崽,相信每个 Java 开发者在工作中都会频繁地处理字符串。无论是处理用户输入、解析文件内容,还是在后台处理数据,String
类总是我们避不开的对象。在今天的文章里,我将会带大家深入了解 Java 中 String
类的几个常用方法,分别是:length()
、charAt()
、substring()
、contains()
和 toUpperCase()
。虽然这些方法看起来简单,但它们的应用范围可广泛得让人咋舌。如果你是 Java 开发小白或者希望加深对这些方法的理解,那么这篇文章绝对能帮到你!
摘要
在 Java 中,字符串处理几乎是每个项目都会涉及的基础操作。String
类是 Java 核心库的一部分,它提供了多种方法来帮助我们高效地操作和处理字符串。本文将围绕五个常用的 String
类方法进行详细分析,分别是:length()
获取字符串长度,charAt()
获取指定位置的字符,substring()
截取字符串,contains()
判断字符串是否包含指定子串,以及 toUpperCase()
将字符串转为大写。每个方法都将通过具体的案例进行演示,并附上性能分析与使用场景,希望能为屏幕前的你提供一些实用的技巧和思路。
简介
String
类是 Java 中最常用的类之一。它是一个不可变的对象,这意味着一旦创建,字符串内容就不能再更改。尽管如此,Java 通过提供丰富的 API 来方便我们对字符串进行各种操作。接下来,我们将详细探讨以下几个方法,这些方法对于日常开发非常实用:
length()
:返回字符串的长度。charAt()
:返回指定位置的字符。substring()
:从字符串中提取子字符串。contains()
:判断字符串是否包含某个指定的子串。toUpperCase()
:将字符串转为大写。
掌握这些方法,不仅能让我们更高效地处理字符串,也能为后续的开发打下坚实的基础。
概述
1. length()
length()
方法返回字符串的长度(即字符串中字符的个数)。这个方法最常用于判断一个字符串的有效长度,或者在字符串操作时作为循环的条件。
示例代码:
java
String str = "Hello, Java!";
int length = str.length();
System.out.println("字符串长度: " + length); // 输出:12
解释 :返回字符串 str
的字符个数。
2. charAt()
charAt(int index)
方法返回字符串中指定位置的字符。需要注意的是,字符串的索引是从 0
开始的。如果索引超出了字符串的范围,将抛出 StringIndexOutOfBoundsException
异常。
示例代码:
java
String str = "Hello";
char ch = str.charAt(1);
System.out.println("第二个字符: " + ch); // 输出:e
解释 :返回字符串 str
中索引为 1
的字符。
3. substring()
substring(int beginIndex)
方法返回从指定位置开始到字符串结尾的子字符串;substring(int beginIndex, int endIndex)
返回从 beginIndex
到 endIndex
(不包括 endIndex
)的子字符串。
示例代码:
java
String str = "Hello, Java!";
String subStr = str.substring(7, 11);
System.out.println("截取的子字符串: " + subStr); // 输出:Java
解释 :返回从索引 7
到 11
的子字符串,结果为 "Java"
。
4. contains()
contains(CharSequence sequence)
方法检查当前字符串是否包含指定的字符序列。如果包含,返回 true
;否则,返回 false
。
示例代码:
java
String str = "Hello, Java!";
boolean contains = str.contains("Java");
System.out.println("是否包含 'Java': " + contains); // 输出:true
解释 :检查字符串 str
是否包含 "Java"
子串。
5. toUpperCase()
toUpperCase()
方法将字符串转换为大写形式,并返回一个新的字符串。由于 String
是不可变的,原字符串本身并没有被修改。
示例代码:
java
String str = "Hello, Java!";
String upperStr = str.toUpperCase();
System.out.println("大写字符串: " + upperStr); // 输出:HELLO, JAVA!
解释 :返回字符串 str
的大写形式。
核心源码解读
Java 中的 String
类方法实现得相当高效。比如:
length()
方法其实是返回String
类内部存储的一个整数值,这个值在字符串创建时就已经被确定。charAt()
方法通过数组索引来获取指定位置的字符,时间复杂度为 O(1)。substring()
方法通过创建新的字符串对象来实现字符串的截取,因此需要注意内存的开销。contains()
方法内部使用indexOf()
来检查子串是否存在,时间复杂度为 O(n)。toUpperCase()
方法会遍历字符串中的每个字符并将其转换为大写,这也是一个线性时间复杂度的操作。
案例分析
假设我们正在开发一个简单的文本处理工具,我们需要处理用户输入的文本,进行一些基本的操作,比如检查文本长度、获取某个字符、截取指定部分、判断是否包含特定的关键字以及将文本转换为大写。通过这些常用方法,我们可以轻松实现这些功能。
示例代码
接着,我给大家展示下,结合理论与实战给大家把知识点讲透,案例代码如下:
java
/**
* @Author wf
* @Date 2025-04-13 18:30
*/
public class StringMethodsDemo {
public static void main(String[] args) {
String inputText = "hello, this is a secret message!";
// 1. 判断文本长度
System.out.println("文本长度: " + inputText.length());
// 2. 获取第一个字符
System.out.println("第一个字符: " + inputText.charAt(0));
// 3. 截取 "secret" 这部分内容
String secret = inputText.substring(17, 23);
System.out.println("截取的秘密部分: " + secret);
// 4. 检查是否包含 "secret" 这个词
System.out.println("是否包含 'secret': " + inputText.contains("secret"));
// 5. 将文本转换为大写
String upperText = inputText.toUpperCase();
System.out.println("大写文本: " + upperText);
}
}
输出预期结果
根据如上所给代码案例,预期输出结果如下:
json
文本长度: 32
第一个字符: h
截取的秘密部分: secret
是否包含 'secret': true
大写文本: HELLO, THIS IS A SECRET MESSAGE!
结果运行展示
如上案例结果运行展示如下,仅供参考:

可以看到,与预期输出结果是不是一致?完全是一致的,证明代码层面无误。
代码解析
根据如上我所给出的案例demo,着重进行代码解析,希望能够辅助大家理解。案例代码展示了如何使用 Java 的 String
类的一些常见方法来处理字符串。下面是每个方法的详细解析,仅供参考:
-
inputText.length()
这个方法返回字符串的长度,即文本中字符的个数。在代码中,它输出了字符串
"hello, this is a secret message!"
的长度。 -
inputText.charAt(0)
charAt(int index)
方法返回指定位置(索引)上的字符。索引从 0 开始,因此charAt(0)
返回第一个字符,也就是"h"
。 -
inputText.substring(17, 23)
substring(int startIndex, int endIndex)
方法截取从startIndex
到endIndex
(不包含endIndex
)之间的子字符串。在这个例子中,截取的是"secret"
这部分内容,起始索引是 17,结束索引是 23。 -
inputText.contains("secret")
contains(CharSequence sequence)
方法检查指定的子字符串是否存在于当前字符串中。如果存在返回true
,否则返回false
。在这个例子中,检查"secret"
是否在inputText
中,结果是true
。 -
inputText.toUpperCase()
toUpperCase()
方法将整个字符串转换为大写形式。代码中将输入的文本"hello, this is a secret message!"
转换为大写。
总结来说,案例代码给大家展示了字符串的基本操作:获取长度、访问特定字符、截取子字符串、检查包含关系,以及转换大小写。每个方法的输出都有助于理解如何使用 String
类的常用功能。
应用场景演示
这些方法在实际开发中应用极为广泛。例如:
length()
可用于验证用户输入是否合法,如密码长度是否符合要求。charAt()
可用来检查某个字符是否出现在字符串中,例如,判断密码中是否包含特殊字符。substring()
常用于从文本中提取关键信息,如从日志中提取时间戳或从 URL 中提取参数。contains()
可用于过滤包含特定词语的内容,例如,检查文章是否包含某些敏感词。toUpperCase()
在需要将用户输入统一格式化时非常有用,比如处理电子邮件地址或用户名时的大小写敏感问题。
优缺点分析
优点:
- 简洁高效:这些方法的使用非常直观,代码简洁,开发效率高。
- 普适性强:这些方法涵盖了字符串操作的常见需求,适用于各种场景。
- 性能可靠 :对于常见的小规模字符串操作,Java 的
String
方法执行速度较快。
缺点:
- 不可变性带来的性能问题 :由于
String
是不可变的,频繁地修改字符串(例如通过拼接)可能会导致性能下降。对于高频次的字符串修改,建议使用StringBuilder
。 - 内存占用 :
substring()
方法创建新的字符串对象,可能导致内存使用增加,尤其是在处理大量字符串时。
类代码方法介绍
下面是String 类 一些常用方法的简要介绍:
length()
:返回字符串的字符个数。charAt(int index)
:返回字符串中指定位置的字符。substring(int beginIndex, int endIndex)
:返回指定区间的子字符串。contains(CharSequence sequence)
:检查字符串是否包含指定子串。toUpperCase()
:将字符串转换为大写。
这些方法能够满足绝大多数字符串操作的需求。
小结
通过本文的学习,我们深入了解了 String
类中五个常用方法:length()
、charAt()
、substring()
、contains()
和 toUpperCase()
。这些方法是字符串处理中的基础,掌握它们可以帮助我们更加高效地处理和操作字符串。当然,虽然这些方法简单易用,但在实际开发中我们仍需注意性能和内存的管理,尤其是在处理大量字符串时。
总结
字符串操作是 Java 开发中非常基础却又非常重要的一部分。掌握 String
类的常用方法,能够让你在日常开发中事半功倍。希望通过本文的讲解,你能更熟悉这些方法,并能够将它们应用到实际项目中。如果你有任何疑问或者更好的建议,欢迎留言讨论!
寄语
最后,身为一名开发者,我们不仅要在技术上不断进步,也要在思维上保持灵活。字符串操作看似简单,但它的灵活性和应用场景却可以给我们带来很多有趣的挑战。希望大家在以后的编程路上,能用好这些工具,编写出更加高效、优雅的代码!
最后
大家如果觉得看了本文有帮助的话,麻烦给不熬夜崽崽点个三连(点赞、收藏、关注)支持一下哈,大家的支持就是我写作的无限动力。