Java 常用语法极简通关(四):数组与字符串的常用操作
开篇一个巡检成绩表处理程序上一章的成绩统计里数组已经露过脸了int[] scores {92, 85, ...}。这一章把它讲透再把日常开发中刷屏的 String 方法一口气过完。还是先看一段完整程序——录入一组成绩做排序展示、查最高最低、格式化输出一张简易成绩表public class ScoreTableApp { public static void main(String[] args) { // 1. 声明并初始化数组 int[] scores {85, 92, 74, 66, 90}; String[] names {张伟, 李强, 王磊, 赵鹏, 陈刚}; // 2. 求最高分、最低分、平均分 int max scores[0]; int min scores[0]; int sum 0; for (int i 0; i scores.length; i) { if (scores[i] max) { max scores[i]; } if (scores[i] min) { min scores[i]; } sum scores[i]; } double avg (double) sum / scores.length; // 3. 打印成绩表拼接出整齐的表头 StringBuilder table new StringBuilder(); table.append( 巡检成绩表 \n); for (int i 0; i names.length; i) { String name names[i]; // 名字不足 3 个字的后面补空格对齐 if (name.length() 3) { name name ; } table.append(name).append().append(scores[i]).append( 分\n); } System.out.print(table.toString()); // 4. 输出统计结论 System.out.println(最高分 max 最低分 min 平均分 avg); // 5. 找出第一个优秀者的名字 for (int i 0; i scores.length; i) { if (scores[i] 90) { System.out.println(首个优秀者 names[i].trim()); break; } } } }运行结果 巡检成绩表 张伟 85 分 李强 92 分 王磊 74 分 赵鹏 66 分 陈刚 90 分 最高分92最低分66平均分81.4 首个优秀者李强程序里涉及三样东西数组、String 方法、StringBuilder分三部分讲。第一部分数组——定长的同类型容器声明与初始化的两种姿势// 姿势一声明时直接给值最常用 int[] scores {85, 92, 74, 66, 90}; // 姿势二只给长度元素拿默认值 int[] arr new int[5]; // 5 个元素全是 0 String[] names new String[3]; // 3 个元素全是 null要点int[]是一个整体——int 的数组这种类型。数组可以装基本类型也可以装引用类型。new int[5]创建后元素自动填默认值int 是 0double 是 0.0boolean 是 false引用类型包括 String是 null。数组长度创建时定死之后不能变。这是数组最大的局限也是后来 ArrayList第九章登场的理由。三件套下标、length、遍历scores[0] // 取第一个元素下标从 0 开始 scores.length // 长度5注意数组的 length 是属性没有括号 scores[i] 100; // 按下标赋值遍历的两种写法第三章已讲这里对号入座for (int i 0; i scores.length; i) { ... } // 要下标用经典 for for (int s : scores) { ... } // 纯取值用增强 for必知坑数组越界ArrayIndexOutOfBoundsException下标的合法范围是0 到 length-1访问scores[5]长度就是 5 时运行期直接抛异常int[] scores {85, 92, 74}; System.out.println(scores[3]); // 编译能过运行崩溃ArrayIndexOutOfBoundsException这类异常是新手期最常见的运行时报错。越界十有八九来自i scores.length这种边界写错记住标准姿势是 length。顺带一提多维数组如int[][] matrix存在但业务代码里用得很少软考偶尔露脸知道int[3][4]是 3 行 4 列即可本系列不展开。第二部分String 的常用方法——就这一把天天用String 类的方法有几十个日常高频的如下表结合案例逐个看方法作用例子length()字符个数锚杆.length()→ 2charAt(i)取下标 i 的字符锚杆.charAt(0)→锚substring(a, b)截取 [a, b) 区间设备巡检.substring(0, 2)→设备indexOf(str)找子串首次出现的位置3号皮带.indexOf(皮带)→ 2contains(str)是否包含子串井下-580m.contains(580)→ trueequals(str)内容比较第二章铁律equalsIgnoreCase(str)忽略大小写比较abc.equalsIgnoreCase(ABC)→ truetrim()去掉首尾空白 维修 .trim()→维修split(分隔符)拆成字符串数组85,92,74.split(,)→[85,92,74]replace(旧, 新)替换全部匹配a-b-c.replace(-, /)→a/b/cstartsWith / endsWith前缀/后缀判断文件名、编号判断常用toUpperCase / toLowerCase大小写转换统一格式用结合案例看几个典型的① 名字对齐用的length()if (name.length() 3) { name name ; // 不足 3 字补空格表格才齐 }注意区分数组的 length 是属性scores.lengthString 的 length 是方法name.length()。带不带括号是经典笔误点也是考点。② 解析 CSV 风格的数据split()trim()是黄金搭档String line 张伟 , 92 , 综采一队 ; String[] parts line.split(,); String name parts[0].trim(); // 张伟 int score Integer.parseInt(parts[1].trim()); // 92字符串转 int第十章细讲③ 判断后再截取indexOf()配合substring()String location 井下-580m东翼大巷; int idx location.indexOf(m); if (idx 0) { // indexOf 找不到会返回 -1先判断 String depth location.substring(3, idx 1); // 580m }④ 前缀判断处理编号String code WX-2026-0341; if (code.startsWith(WX-)) { System.out.println(这是一条维修单); }别忘了第二章讲过的 String 不可变性这些方法全部返回新字符串原字符串纹丝不动。name.trim()之后要把结果接回来——name name.trim();光调用不接收等于白调用。第三部分StringBuilder——循环拼接的唯一正确姿势案例里拼成绩表用的是 StringBuilderStringBuilder table new StringBuilder(); table.append( 巡检成绩表 \n); for (int i 0; i names.length; i) { table.append(name).append().append(scores[i]).append( 分\n); } System.out.print(table.toString());为什么不用熟悉的回顾第二章String 不可变每次都新建一个对象。循环 1000 次就产生 1000 个临时字符串对象内存和速度都是浪费。StringBuilder 内部是一块可变的字符缓冲区append是原地追加不产生新对象最后toString()一次成型。用法就三个动作StringBuilder sb new StringBuilder(); // 1. 创建 sb.append(a).append(100).append(b); // 2. 追加可链式什么类型都能塞 String result sb.toString(); // 3. 转成 String规则一句话循环里拼字符串用 StringBuilder一次性拼两三个用就行编译器对简单的拼接有优化不用矫枉过正。案例里还有个细节\n是换行符转义字符。常用的转义就三个\n换行、\t制表符、\在字符串里表示一个双引号本身。一个隐患两个数组按下标对应有多脆弱回头看案例的数据结构int[] scores {85, 92, 74, 66, 90}; String[] names {张伟, 李强, 王磊, 赵鹏, 陈刚};张伟得 85 分这个关系靠的是两个数组下标对齐来维系的names[i] 的成绩是 scores[i]。程序跑对的前提是录入时两边顺序严格一致。问题在于这种对应关系编译器完全不管。假设录入时手一抖names 里漏了一个人或者顺序排错程序照样编译通过、照样运行只是从此以后李强的成绩全是别人的——结果张冠李戴还不会有任何报错提示。这是数组时代最隐蔽的逻辑 bug 温床。解法其实直觉上很简单把姓名、成绩、班组捆在一起装进一个工人里让它们物理上不可分。这个捆在一起的手段就是下一章的主角——类与对象。常踩的坑排雷清单数组越界下标合法范围 0 ~ length-1边界一律写i length。length 带不带括号数组scores.length属性Stringname.length()方法记死这个区别。String 方法不接收返回值s.trim()之后 s 没变字符串不可变必须s s.trim()。substring 的右边界不含substring(0, 2)取下标 0 和 1左闭右开和很多人的直觉相反。indexOf 找不到返回 -1直接用返回值当下标会越界先判 0。循环里用拼长字符串几百上千次循环后性能明显下降该上 StringBuilder。多数组按下标对应数据错位不报错是最隐蔽的逻辑 bug 温床。本章小结数组定长、同类型两种初始化姿势元素默认值int 为 0、引用为 null越界是运行时异常。String 高频方法就那一把length()、substring()、indexOf()、contains()、trim()、split()、replace()、startsWith等全部返回新串。StringBuildernew→append→toString()三步循环拼接的唯一正确姿势。数组按下标对应多份数据的痛点引出了下一章的主角。下一章是全系列的地基类与对象——字段、方法、构造器、this 与 static。我们会把姓名成绩班组封装成一个真正的工人对象亲手解决本章结尾的数据错位问题。

相关新闻

KMS_VL_ALL_AIO:Windows系统激活终极解决方案,3分钟解决激活难题

KMS_VL_ALL_AIO:Windows系统激活终极解决方案,3分钟解决激活难题

KMS_VL_ALL_AIO:Windows系统激活终极解决方案,3分钟解决激活难题 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活问题而烦恼吗?每天面对…

2026/8/11 15:07:40 阅读更多 →
3个简单步骤:快速安装RTL88x2BU无线网卡驱动,让Linux WiFi满速运行

3个简单步骤:快速安装RTL88x2BU无线网卡驱动,让Linux WiFi满速运行

3个简单步骤:快速安装RTL88x2BU无线网卡驱动,让Linux WiFi满速运行 【免费下载链接】RTL88x2BU-Linux-Driver Realtek RTL88x2BU WiFi USB Driver for Linux 项目地址: https://gitcode.com/gh_mirrors/rt/RTL88x2BU-Linux-Driver 还在为Linux系统…

2026/8/11 15:06:40 阅读更多 →
华硕笔记本性能控制终极指南:轻量级开源工具G-Helper完整教程

华硕笔记本性能控制终极指南:轻量级开源工具G-Helper完整教程

华硕笔记本性能控制终极指南:轻量级开源工具G-Helper完整教程 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenb…

2026/8/11 15:06:40 阅读更多 →

最新新闻

2026岳阳危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总

2026岳阳危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总

岳阳老城区街巷深处,不少老旧小区楼体斑驳、墙体开裂,乡镇自建房因年久失修隐患暗藏,厂房商铺经营者、学校医院管理者纷纷将危房安全评估提上日程。然而市面上危房鉴定机构鱼龙混杂,部分无资质团队出具的报告根本无法通过住建审核…

2026/8/11 15:51:57 阅读更多 →
5G与6G:下一代移动通信

5G与6G:下一代移动通信

【814】5G与6G:下一代移动通信 你有没有这种感觉: 4G刚用熟,5G就来了? 5G还没全覆盖,6G又在路上了? 移动通信的迭代速度,比换手机还快。 从1G到5G 移动通信演进: ┌──────────────────────────────────────────────…

2026/8/11 15:51:57 阅读更多 →
CY7-PEG-NHS 花菁近红外荧光偶联试剂:产品特性说明

CY7-PEG-NHS 花菁近红外荧光偶联试剂:产品特性说明

CY7‑PEG‑NHS 属于近红外花菁 CY7 染料修饰 PEG 末端 NHS 活性酯的荧光偶联中间体,同时具备近红外荧光信号、PEG 亲水增稳效应与 NHS 氨基反应活性三大特性,可实现蛋白、多肽及高分子载体的荧光标记。本文将从基础参数、荧光理化性质、反应适配条件、实…

2026/8/11 15:51:57 阅读更多 →
收藏!小白程序员轻松入门大模型:哔哩哔哩AI-Native前端面试全解析

收藏!小白程序员轻松入门大模型:哔哩哔哩AI-Native前端面试全解析

本文详细分享了哔哩哔哩AI-Native开发工程师(前端)的面试经验,内容涵盖面试流程、考察重点及应对策略。适合希望在大模型领域发展的小白和程序员,助你轻松掌握前端技能,提升面试成功率。 哔哩哔哩 AI-Native开发工程师…

2026/8/11 15:51:57 阅读更多 →
Spread.NET 19.1.0 WinForms-NuGet .NET 10

Spread.NET 19.1.0 WinForms-NuGet .NET 10

Spread.NET v19.1包含超过 500 个 Excel 函数的完整 WinForms 电子表格 快速打造媲美 Excel 的电子表格体验,且完全不依赖 Excel。创建财务、预算/预测、科学、工程、医疗保健、保险、教育、制造等众多类似的 WinForms 商业应用程序。利用全面的 API创建企业级电子表…

2026/8/11 15:51:57 阅读更多 →
同城货运搬家系统:SpringBoot+Vue智能调度实战

同城货运搬家系统:SpringBoot+Vue智能调度实战

1. 项目背景与核心价值 同城货运搬家这个细分领域,在过去三年迎来了爆发式增长。根据行业数据显示,2022年同城货运市场规模已突破万亿,其中搬家服务占比超过35%。这个Java项目正是瞄准了这个高频刚需场景,通过技术手段解决传统搬家…

2026/8/11 15:50:57 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →