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

JavaSE核心知识点01基础语法01-05(字符串)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

    • JavaSE核心知识点01基础语法01-05(字符串)
      • **一、创建字符串**
      • **二、基本操作**
      • **三、比较字符串**
      • **四、不可变性与高效操作**
      • **五、格式化字符串**
      • **六、其他常用方法**
      • **七、注意事项**


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

Java中的字符串(String)是表示文本数据的一种对象类型,属于java.lang.String类。字符串是不可变的(Immutable),即创建后内容无法修改,所有修改操作都会生成新对象。以下是Java字符串的详细使用指南:


JavaSE核心知识点01基础语法01-05(字符串)

一、创建字符串

  1. 直接赋值(推荐,利用字符串常量池):

    String s1 = "Hello World";  // 从常量池引用
    
  2. 使用new关键字(每次创建新对象):

    String s2 = new String("Hello World");  // 新对象,不复用常量池
    

二、基本操作

  1. 字符串连接

    String s = "Java";
    s = s + " Programming";      // "+" 操作符
    s = s.concat("!");           // concat()方法
    
  2. 获取长度

    int len = s.length();        // 返回字符串长度
    
  3. 大小写转换

    String upper = s.toUpperCase();  // 转大写
    String lower = s.toLowerCase();  // 转小写
    
  4. 截取子串

    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);  // 直接输出格式化内容

六、其他常用方法

  1. 分割字符串

    String[] parts = "a,b,c".split(",");  // 按逗号分割为数组
    
  2. 去除首尾空格

    String trimmed = "  text  ".trim();  // 移除首尾空白字符
    
  3. 替换内容

    String replaced = "Hello".replace('l', 'w');  // 替换字符,结果为"Hewwo"
    
  4. 查找内容

    boolean hasJava = s.contains("Java");   // 是否包含子串
    int index = s.indexOf("Java");          // 首次出现的位置
    

七、注意事项

  1. 不可变性:每次修改字符串都会生成新对象,原对象不变。
  2. 比较陷阱:用==比较的是对象地址,非内容,必须使用equals()
  3. 性能优化:大量拼接时优先选StringBuilder
  4. 字符串池:直接赋值的字符串会被复用,减少内存开销。

通过掌握这些基础操作和注意事项,您已经能够高效处理Java字符串!


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

http://www.xdnf.cn/news/4581.html

相关文章:

  • 进程与线程详细介绍
  • 如何使用 QuickAPI 连接 PostgreSQL 数据库并将PostgreSQL数据发布成API?
  • 嵌入式开发学习日志Day15
  • AI恶魔之眼使用说明书
  • Spring Bean 的创建流程
  • 分布式id的两大门派!时钟回拨问题的解决方案!
  • 单调栈原理
  • vtkSmartPointer<vtkPolyData> 常用的函数方法
  • Spring Boot 多数据源事务管理
  • async/await的另一种食用方法
  • vue-quill-editor的失焦事件
  • 分布式架构详解
  • #黑马点评#(一)登录功能
  • 数字化转型-4A架构之应用架构
  • 鸿蒙编译boost
  • 浅谈微前端沙箱机制
  • 报表分析报告怎么写?零基础掌握报表分析三要素!
  • canal mysqltomysql增加同步的库操作
  • 96、数图求解(整数规划建模求解)
  • 分布式-Redis分布式锁
  • 如何用FastMCP快速开发自己的MCP Server?
  • 2024ccpc【上海+陕西】
  • Windows远程桌面实现之十七:基于浏览器的文件和目录传输(一)
  • 解决 win11 连接共享打印机,报错 0x00000709 问题
  • Analytics Service 对生产环境性能的影响
  • Spring-博客系统项目
  • 动态规划之回文串问题
  • 第7章-3 维护索引和表
  • 添加地形与自定义地形
  • HTML基础2-空元素,元素属性与页面的结构