全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 24 道配套习题

字符串专题

专题说明

本专题系统讲解 Java 字符串的核心知识点,从基础概念到性能优化,帮助开发者建立完整的字符串知识体系。

学习目标

  1. 理解 String 的不可变性及其影响
  2. 掌握字符串常用方法的使用
  3. 正确使用字符串比较方式
  4. 了解字符串拼接性能差异,合理选择拼接方式
  5. 掌握 StringBuilder 与 StringBuffer 的使用场景
  6. 熟练进行字符串与字符数组的相互转换
  7. 掌握正则表达式在字符串处理中的应用

学习内容

本专题涵盖以下知识点:

  • Java 字符串基础概念
  • 字符串不可变性原理
  • 字符串常用方法(长度、截取、查找、替换等)
  • 字符串比较(== vs equals)
  • 字符串拼接与性能优化
  • StringBuilder 与 StringBuffer 的区别与应用
  • 字符串与字符数组的转换
  • 正则表达式与字符串处理

学习建议

  1. 先理解不可变性概念,这是字符串特性的基础
  2. 重点掌握 equals() 与 == 的区别,避免常见错误
  3. 注意字符串拼接的性能问题,在大数据量场景使用 StringBuilder
  4. 正则表达式是进阶内容,建议先掌握基础方法再深入学习

📝 配套习题(24 题)

💡 参考答案在文末
判断题
1

编译器会将字符串常量的+拼接优化为单个字符串常量。

A

B

单选题
2

"abc".compareTo("abd")的结果是什么?

A

0

B

-1

C

1

D

true

3

"Hello".charAt(1)的结果是什么?

A

'H'

B

'e'

C

'l'

D

索引越界异常

4

比较两个字符串内容是否相同应该使用什么方法?

A

==

B

equals()

C

compare()

D

same()

5

使用+拼接字符串"Hello" + "World"的结果是什么?

A

"HelloWorld"

B

"Hello World"

C

编译错误

D

返回StringBuilder

6

StringBuilder的主要特点是什么?

A

线程安全

B

可变字符串,效率高

C

不可变字符串

D

只能存储数字

7

将字符串转换为字符数组的方法是什么?

A

getChars()

B

toCharArray()

C

chars()

D

toArray()

8

String.matches方法的作用是什么?

A

查找子串

B

判断整个字符串是否匹配正则表达式

C

替换字符

D

分割字符串

9

在循环中大量拼接字符串时,使用+会有什么问题?

A

编译错误

B

性能较差,产生大量临时对象

C

内存溢出

D

拼接结果错误

10

String类位于哪个包?

A

java.util

B

java.lang

C

java.io

D

java.text

11

" Hello ".trim()的结果是什么?

A

"Hello"

B

" Hello"

C

"Hello "

D

" Hello "

12

获取字符串长度的方法是什么?

A

size()

B

length()

C

length

D

count()

13

以下代码的输出结果是什么?

Java
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
A

false true

B

true true

C

false false

D

true false

14

如何正确使用字符串方法改变内容?

A

直接调用方法即可

B

必须接收方法的返回值赋给变量

C

字符串方法自动修改原对象

D

使用void方法修改

15

Java字符串的一个重要特性是什么?

A

可以修改

B

不可变(immutable)

C

可以扩容

D

可以删除字符

16

StringBuilder的append方法有什么特点?

A

创建新对象

B

在原对象上追加内容,返回自身引用

C

只能追加字符串

D

必须立即toString()

17

将字符数组转换为字符串的方法是什么?

A

new String(char[])

B

char[].toString()

C

String.valueOf(char[])

D

以上A和C都可以

18

"a1b2c3".replaceAll("\d", "X")的结果是什么?

A

"a1b2c3"

B

"aXbXcX"

C

"XXX"

D

"abc"

19

"a1b2c3".split("\d")返回什么?

A

["a", "b", "c"]

B

["a", "1", "b", "2", "c", "3"]

C

["a", "b", "c", ""]

D

["abc"]

20

以下代码创建了几个String对象?

Java
String s1 = "Hello";
String s2 = new String("Hello");
String s3 = "Hello";
A

1个

B

2个

C

3个

D

4个

21

以下哪种方式在循环拼接字符串时效率最高?

A

s += "a";

B

s = s.concat("a");

C

sb.append("a");(StringBuilder)

D

以上效率相同

22

以下关于Java字符串的说法,哪项是错误的?

A

String是不可变的,任何修改操作都返回新对象

B

字符串常量池中相同内容只存一份

C

StringBuilder是可变的,append在原对象上修改

D

使用+拼接字符串效率始终最高

简答题
23

请分析字符串拼接的几种方式及其性能特点,说明如何选择合适的拼接方式。

24

请解释String不可变性的含义,并说明为什么要设计为不可变?有什么好处?

参考答案
1.正确 2.B 3.B 4.B 5.A 6.B 7.B 8.B 9.B 10.B 11.A 12.B 13.B 14.B 15.B 16.B 17.D 18.B 19.A 20.B 21.C 22.D 23. 24.
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 反射与注解专题
下一个专题 → 性能调优实战专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码