JavaSE核心知识点01基础语法01-05(字符串)
🤟致敬读者
- 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉
📘博主相关
- 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息
文章目录
- JavaSE核心知识点01基础语法01-05(字符串)
- **一、创建字符串**
- **二、基本操作**
- **三、比较字符串**
- **四、不可变性与高效操作**
- **五、格式化字符串**
- **六、其他常用方法**
- **七、注意事项**
📃文章前言
- 🔷文章均为学习工作中整理的笔记。
- 🔶如有错误请指正,共同学习进步。
Java中的字符串(String)是表示文本数据的一种对象类型,属于java.lang.String
类。字符串是不可变的(Immutable),即创建后内容无法修改,所有修改操作都会生成新对象。以下是Java字符串的详细使用指南:
JavaSE核心知识点01基础语法01-05(字符串)
一、创建字符串
-
直接赋值(推荐,利用字符串常量池):
String s1 = "Hello World"; // 从常量池引用
-
使用
new
关键字(每次创建新对象):String s2 = new String("Hello World"); // 新对象,不复用常量池
二、基本操作
-
字符串连接:
String s = "Java"; s = s + " Programming"; // "+" 操作符 s = s.concat("!"); // concat()方法
-
获取长度:
int len = s.length(); // 返回字符串长度
-
大小写转换:
String upper = s.toUpperCase(); // 转大写 String lower = s.toLowerCase(); // 转小写
-
截取子串:
String sub1 = s.substring(5); // 从索引5到末尾 String sub2 = s.substring(0, 4); // 索引0到3(左闭右开)
三、比较字符串
-
内容相等:使用
equals()
而非==
:boolean isEqual = s1.equals(s2); // 区分大小写 boolean isEqualIgnoreCase = s1.equalsIgnoreCase(s2); // 不区分大小写
-
字典顺序:
compareTo()
:int result = s1.compareTo(s2); // 返回正数、0或负数
四、不可变性与高效操作
- 问题:频繁拼接字符串(如循环中使用
+
)会生成大量中间对象,影响性能。 - 解决方案:使用
StringBuilder
(非线程安全)或StringBuffer
(线程安全):StringBuilder sb = new StringBuilder(); sb.append("Hello").append(" World"); String result = sb.toString(); // 最终转换为String
五、格式化字符串
String name = "Alice";
int age = 25;
String formatted = String.format("Name: %s, Age: %d", name, age); // 格式化为字符串
System.out.printf("Info: %s\n", formatted); // 直接输出格式化内容
六、其他常用方法
-
分割字符串:
String[] parts = "a,b,c".split(","); // 按逗号分割为数组
-
去除首尾空格:
String trimmed = " text ".trim(); // 移除首尾空白字符
-
替换内容:
String replaced = "Hello".replace('l', 'w'); // 替换字符,结果为"Hewwo"
-
查找内容:
boolean hasJava = s.contains("Java"); // 是否包含子串 int index = s.indexOf("Java"); // 首次出现的位置
七、注意事项
- 不可变性:每次修改字符串都会生成新对象,原对象不变。
- 比较陷阱:用
==
比较的是对象地址,非内容,必须使用equals()
。 - 性能优化:大量拼接时优先选
StringBuilder
。 - 字符串池:直接赋值的字符串会被复用,减少内存开销。
通过掌握这些基础操作和注意事项,您已经能够高效处理Java字符串!
📜文末寄语
- 🟠关注我,获取更多内容。
- 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
- 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
- 🔵加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
- 🟣点击下方名片获取更多内容🍭🍭🍭👇