Java核心技术精要:数组与字符串详解
需积分: 9 122 浏览量
更新于2024-07-29
收藏 478KB DOC 举报
"CORE JAVA总结_沈红喜"
在Java编程中,J2SE(Java Standard Edition)是核心部分,包含了开发桌面应用和网络应用所需的基础类库。以下是对标题和描述中涉及的知识点的详细说明:
一、常用基础类 - 数组
1. 排序算法
- 选择排序:通过比较找到最小元素并放置到已排序部分的末尾,每次迭代将未排序部分的最小元素移到前面。
- 冒泡排序:相邻元素两两比较,若顺序错误则交换,最大元素逐渐“冒泡”到末尾。
- 插入排序:遍历未排序部分,将每个元素插入到已排序部分的正确位置。
2. 数组创建:声明数组变量并分配内存,如`int[] a = new int[100];`
3. `Arrays`工具类
- 提供了丰富的静态方法用于操作数组,例如获取数组长度、转换数组为字符串、复制数组、填充数组以及排序等。
4. `Arrays` API举例
- `.length`属性:返回数组长度
- `Arrays.toString(ary)`:将数组转换为字符串形式
- `Arrays.copyOf(ary, newLength)`:创建数组副本,指定新长度
- `Arrays.copyOfRange(ary, from, to)`:复制数组的一部分到新数组
- `Arrays.fill(ary, obj)`:用指定对象填充整个数组
- `Arrays.sort()`:对数组进行排序
5. 数组拷贝:数组无论通过引用传递还是使用`clone`方法,都是深拷贝,意味着原始数组和拷贝的数组之间互不影响。
6. 控制台输入数组:通常使用循环结构(如`while (true)`)配合`Scanner`类读取用户输入,然后用`break`语句跳出循环。
7. 二维数组:二维数组可以看作是一组数组的集合,各行元素数量可以不同。使用`Arrays.deepToString(aa)`可以显示二维数组的详细内容。
二、字符串和正则表达式
1. Java字符串的不可变性
- 字符串一旦创建,其内容就不能更改,因为`String`对象是在常量池中创建的。但可以通过创建新的`String`对象来改变字符串内容。
2. 字符串拼接
- 基本数据类型(除了`boolean`)可以直接与`String`对象拼接,使用`+`运算符。
3. `String` API
- `new String(char[])`:从字符数组创建字符串
- `String.valueOf(Object)`:将任何对象转换为字符串表示
- `length()`:返回字符串长度
- `charAt(index)`:获取指定索引处的字符
- `toCharArray()`:将字符串转换为字符数组
- `startsWith(str)`, `endsWith(str)`:检查字符串是否以指定字符串开头或结尾
- `equals(str)`, `equalsIgnoreCase(str)`:比较字符串内容是否相等,忽略大小写
- `indexOf(str/char)`, `indexOf(str, int)`, `lastIndexOf()`:查找子串或字符的索引,有重复时需要注意
- `replace(str/char, newStr/char)`, `replaceAll()`:替换指定子串或字符
- `substring(from)`, `substring(from, to)`:提取子字符串
- `toUpperCase()`, `toLowerCase()`:将字符串转换为大写或小写
- `trim()`:去除字符串两端的空白字符
- `compareTo(str)`:根据Unicode值比较字符串,返回值可正可负
4. `StringBuilder`类
- 从Java 5开始引入,作为可变字符串,用于高效地构建和修改字符串,非线程安全。在需要频繁修改字符串的情况下,推荐使用`StringBuilder`而非`String`。
总结,掌握这些基础类和字符串操作对于深入理解Java编程至关重要,它们是构建复杂程序的基石。在实践中,熟练运用这些知识可以提高代码效率和可读性。
2022-09-23 上传
2021-10-03 上传
2021-08-12 上传
2022-09-19 上传
2010-02-05 上传
2019-08-16 上传
2021-08-12 上传
2021-03-14 上传
hongxi001
- 粉丝: 0
- 资源: 1
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程