java数组
数组是存储在一个连续的内存块中的元素结合。数组中的每个元素必须是相同的数据类型,并通过索引进行区分。数组中的第一个元素索引为0。
数组的声明
数据类型 [] 数组名;
int [] nums;
在上述的数组应用声明后,nums引用可以指向任何int数据类型的数组,不管数组中有多少个元素。因为nums只是一个引用,它可以赋值为null。
数组初始化
数组名 = new 数据类型 [长度];
初始化就是为内存开辟内存空间,并为数组中的每个元素赋值
数组必须在连续的内存中所以在内存初始化分配后数组的大小就不能改变了。
数组初始化时的数据类型必须与数组声明时的数据类型相同
动态初始化
只确定数组的长度不给元素赋值
数组名 = new数据类型[长度];
静态初始化
给出初始值不指定长度
数组名 = new数据类型[]{值1, 值2, .......值n};
这时的数组长度也是确定的即n-1。
可以一步完成数组的声明和初始化
数据类型 [] 数组名 = new 数据类型 [长度];
格式是固定的 可以改变的是数据类型、数组名、长度。
访问数组
数组中的元素同队用对该数组的一个引用、一个用于描述我们要访问数组那一个元素的整型索引来访问。数组的第一个元素为的索引为0,第二个为1,以此类推。
即 数组名[下标];
例如
int [] nums = new int[20];
nums[0] = 1;
nums[1] = 2;
在访问数组时,如果数组下标不在最大最小范围内会出现ArrayIndexOutOfBoundsException(数组下标越界异常)。
数组的遍历
可以通过使用for循环遍历数组
for(int i = 0; i< 数组名.length ; i++){
system.out.print(array[i]);
}
例子
输入三个数存入数组并输出
public static void main(String[] args) {
int [] nums = new int[3];
for (int i = 0; i < nums.length; i++) {
System.out.println("输入数组第"+i+"位数");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
nums[i] = input;
}
System.out.println("数组中的内容:");
for (int i = 0; i < nums.length; i++) {
System.out.print(+nums[i]+"\t");
}
}
转换字符串的大小写字母
public static void main(String[] args) {
System.out.println("请输入一个字符串");
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
char [] charArr = str.toCharArray();
for (int i = 0; i < charArr.length; i++) {
if (charArr[i]>='A'&&charArr[i]<='Z') {
charArr[i] +=32;
}else if (charArr[i]>='a'&&charArr[i]<='z') {
charArr[i] -=32;
}
}
for (int i = 0; i < charArr.length; i++) {
System.out.print(charArr[i]+" ");
}
System.out.println();
scanner.close();
}
数组的特点
1.只能是同一种数据类型
2.数组是按连续内存空间存放的
3.数组的大小一旦确定,就不能更改了。