第3章 Java数组和字符串

本文详细介绍了Java数组的概念及其使用方法,包括数组的声明、初始化及内存管理等内容,并提供了数组元素默认值的具体示例。

Java数组

数组是有序的元素集合,包括基本数据类型引用数据类型,或是对其它数组的引用
数组是对象,是扩展自类Object的对象,类Object中定义的方法都可用于数组对象,实现对数组中元素的操作
数组声明无需指明数组长度

声明数组

声明数组,即声明数组的类型,数组名

type arrayName[];
char s[];char[] s;
int intArray[];int[] intArray;

数组初始化值

静态初始化

int[] intArray = { 34, 28, 59, 89 };
int[] intArray = new int[]{ 34, 28, 59, 89 };

动态初始化

int[] intArray = new int[4];
int intArray[] = new int[4];   

数组中元素的初始值是?如果是double, float, char, boolean 类型呢?

在java中,如果为数组分配了内存空间,那么系统会为数组元素指定默认值,该默认值与数组的数据类型有关。
byte 型数组元素默认初始值是 0 。
short 型数组元素的默认初始值是 0 。
int 型数组元素的默认初始值是 0 。
long 型数组元素的默认初始值是 0L。
float 型数组元素的默认初始值是 0.0f。
double 型数组元素的默认初始值是 0.0d。
char 型数组元素的默认初始值是 .\u.000。
boolean 型数组元素的默认初始值是 false。
引用类型 (类、接口)数组元素的默认初始值是 null,例如:String 类型数组的默认初始值是 null。

数组初始化内存管理

在这里插入图片描述

生成随机数:

(int)(Math.random()*1000)%40+60
### Java数组字符串的用法及相互转换 #### 字符串到字符数组的转换 在Java中,可以使用`String.toCharArray()`方法将字符串转换成字符数组。此方法会创建一个新的字符数组,并将原字符串的内容复制进去。 ```java public class Main { public static void main(String[] args) { String str = "abcd"; char[] arr = str.toCharArray(); for (char c : arr){ System.out.print(c); } } } ``` #### 字符数组字符串的转换 对于从字符数组转换回字符串的操作,则可以通过静态方法`String.copyValueOf(char[])`来实现[^1]: ```java public class Main { public static void main(String[] args) { char[] arr = {'a', 'b', 'c', 'd'}; String str2 = String.copyValueOf(arr); System.out.println(str2); } } ``` #### 使用第三方库进行更复杂的转换 如果希望以特定分隔符连接数组元素形成字符串,除了手动遍历外还可以借助于Apache Commons Lang库中的`StringUtils.join()`函数[^2]。这需要先下载并导入相应的JAR文件至项目路径下。 ```java import org.apache.commons.lang3.StringUtils; public class Main { public static void main(String[] args) { String[] array = {"apple", "banana", "orange"}; String result = StringUtils.join(array, ","); System.out.println(result); } } ``` #### 数组工具类Arrays的应用 当涉及到更多关于数组的操作时,如排序、查找等,可利用标准库提供的`java.util.Arrays`类[^3]。它不仅支持基本类型的数组处理,也适用于对象数组的各种操作需求。 ```java import java.util.Arrays; public class Main { public static void main(String[] args) { Integer[] numbers = {9, 7, 5, 3, 1}; // 排序 Arrays.sort(numbers); // 查找 int index = Arrays.binarySearch(numbers, 5); // 填充 Arrays.fill(numbers, 0); // 复制部分数组 Integer[] copyNumbers = Arrays.copyOfRange(numbers, 0, 3); // 判断两数组是否相同 boolean isEqual = Arrays.equals(copyNumbers, new Integer[]{0, 0, 0}); } } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值