news 2026/5/26 22:41:38

Java字符串核心知识点详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java字符串核心知识点详解

本文详细讲解Java字符串核心知识点,涵盖String概念、创建方式、常用API、字符串比较、拼接、转换、StringBuffer与StringBuilder。

一、字符串基本概念

字符串是由多个字符组成的字符序列,Java中使用String类表示,属于引用数据类型。字符串一旦创建,内容不可更改,具备不可变性

二、字符串创建方式

1. 直接赋值创建

publicclassStringCreateDemo{publicstaticvoidmain(String[]args){// 常量池创建字符串Stringstr1="Java编程";Stringstr2="Java编程";}}

2. new对象创建

// 堆内存创建字符串对象Stringstr3=newString("双栈小码哥");// 字符数组转为字符串char[]charArr={'a','b','c'};Stringstr4=newString(charArr);// 字节数组转为字符串byte[]byteArr={97,98,99};Stringstr5=newString(byteArr);

三、字符串内存特点

  1. 直接赋值方式会存入字符串常量池,重复内容只会创建一份内存
  2. new方式每次都会在堆内存生成新对象
  3. 字符串内容无法直接修改,修改本质是生成新字符串

四、字符串常用判断方法

publicclassStringJudgeDemo{publicstaticvoidmain(String[]args){Strings1="hello";Strings2="Hello";// 判断内容是否相同System.out.println(s1.equals(s2));// 忽略大小写判断相等System.out.println(s1.equalsIgnoreCase(s2));// 判断字符串是否为空System.out.println(s1.isEmpty());// 判断是否以指定前缀开头System.out.println(s1.startsWith("he"));// 判断是否以指定后缀结尾System.out.println(s1.endsWith("lo"));}}

五、字符串获取与截取方法

publicclassStringGetDemo{publicstaticvoidmain(String[]args){Stringstr="JavaPython";// 获取字符串长度intlen=str.length();// 根据下标获取单个字符charc=str.charAt(3);// 查找字符首次出现下标intindex=str.indexOf('P');// 截取指定区间字符串Stringsub1=str.substring(4);Stringsub2=str.substring(0,4);}}

六、字符串转换、分割与替换

publicclassStringOperateDemo{publicstaticvoidmain(String[]args){Stringmsg="Java And Python";// 字符串转字符数组char[]arr=msg.toCharArray();// 全部转为小写Stringlower=msg.toLowerCase();// 全部转为大写Stringupper=msg.toUpperCase();// 替换指定字符内容StringnewMsg=msg.replace("And","和");// 按照符号分割字符串String[]splitArr=msg.split(" ");}}

七、字符串拼接

1. 加号拼接

Stringa="2026";Stringb="教程";Stringres=a+b;

2. concat方法拼接

Stringresult=a.concat(b);

八、可变字符串类

1. StringBuilder 非线程安全,效率高

publicclassStringBuilderDemo{publicstaticvoidmain(String[]args){StringBuildersb=newStringBuilder();// 追加内容sb.append("Java");sb.append("基础");// 插入内容sb.insert(0,"2026");// 反转字符串sb.reverse();// 转为String类型Stringstr=sb.toString();}}

2. StringBuffer 线程安全,效率偏低

StringBuffersbf=newStringBuffer();sbf.append("编程学习");

三类字符串对比

  1. String:内容不可变,少量拼接使用
  2. StringBuilder:可变字符,单线程大量拼接首选
  3. StringBuffer:可变字符,多线程并发场景使用

我是双栈小码哥,点赞+收藏+关注,希望本文能对您的学习和工作有所帮助。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 22:40:07

硬件友好型超分辨率:一维学习插值实现低成本图像增强

1. 项目概述:硬件友好的低成本超分辨率插值在图像处理和计算机视觉领域,超分辨率(Super-Resolution, SR)技术一直是个热门且极具挑战性的课题。简单来说,它的目标就是让“小图变大”的同时,还能变得更清晰。…

作者头像 李华
网站建设 2026/5/26 22:40:06

基于非负矩阵分解的学习者社区构建:从行为数据到兴趣图谱

1. 项目概述:从数据中“看见”学习者社区在线教育平台最不缺的就是数据。每一次点击、每一道习题、每一次讨论,都留下了学习者行为的数字足迹。然而,这些海量数据往往沉睡在数据库中,难以转化为对学习者真实、立体的理解。传统的学…

作者头像 李华
网站建设 2026/5/26 22:39:00

LLM增强图推荐系统:语义与拓扑双重策略提升推荐多样性

1. 项目概述:当图推荐系统遇上大语言模型作为一名在推荐系统领域摸爬滚打了多年的算法工程师,我见过太多“精准但无聊”的推荐结果。系统总是乐此不疲地给我推荐那些我已经看过、或者风格高度雷同的内容,仿佛我的兴趣被永远定格在了某个狭窄的…

作者头像 李华
网站建设 2026/5/26 22:38:09

OpenAI 大重组与 IPO 冲刺:全面解析

OpenAI 大重组与 IPO 冲刺:全面解析整理时间:2026年5月24日 | 信息来源:WIRED、The Verge、The Information、华尔街日报、36氪、新智元等多家媒体交叉验证一、事件概览2026年5月15-16日,OpenAI 宣布了公司历史上IPO前夕最大规模的…

作者头像 李华
网站建设 2026/5/26 22:37:50

5月24号: 指数是下跌中继嘛?买点在哪几天?

盘面总评:指数缩量反弹创业板指涨近3%,PCB方向与指数共振修复,鹏鼎控股竞价一字锁定方向,培育钻石、半导体午后轮动助攻,连板高标批量出清但反包模式活跃。一、指数分析昨日三大指数集体重挫,主导因素是AI算…

作者头像 李华
网站建设 2026/5/26 22:37:45

从简单析构到析构链:C 语言里对象内部资源的释放顺序

从简单析构到析构链:C 语言里对象内部资源的释放顺序 作者:QuirkybrainGitHub 仓库:Quirkybrain/C-learning-note 作者今天晚上刚刚考完《思想道德与法治》。 只能说,这门课背到最后,人已经不是人了。 更像一个没有设…

作者头像 李华