杰瑞科技汇

Java如何定义String数组?

核心概念

在 Java 中,数组是一个固定长度的、可以存储相同类型数据(这里是 String 类型)的容器。

Java如何定义String数组?-图1
(图片来源网络,侵删)

声明并指定数组长度(未初始化)

这是最基本的方法,你首先声明一个 String 类型的数组变量,并指定它能存放多少个元素,数组中的所有元素都还没有被赋值,它们的默认值是 null

语法:

String[] arrayName = new String[length];

示例:

public class Main {
    public static void main(String[] args) {
        // 声明一个可以存放3个字符串的数组
        String[] fruits = new String[3];
        // 此时数组中的元素都是 null
        System.out.println(fruits[0]); // 输出: null
        System.out.println(fruits[1]); // 输出: null
        System.out.println(fruits[2]); // 输出: null
        // 为数组的元素赋值
        fruits[0] = "Apple";
        fruits[1] = "Banana";
        fruits[2] = "Orange";
        // 打印数组
        System.out.println(fruits[0]); // 输出: Apple
        System.out.println(fruits[1]); // 输出: Banana
        System.out.println(fruits[2]); // 输出: Orange
    }
}

声明并初始化(静态初始化)

如果你在创建数组时就知道了所有要存储的元素,可以使用这种方法,它更简洁,也更常用。

Java如何定义String数组?-图2
(图片来源网络,侵删)

语法:

String[] arrayName = {element1, element2, element3, ...};

示例:

public class Main {
    public static void main(String[] args) {
        // 声明并直接初始化一个包含3个元素的数组
        String[] fruits = {"Apple", "Banana", "Orange"};
        // 打印数组
        System.out.println(fruits[0]); // 输出: Apple
        System.out.println(fruits[1]); // 输出: Banana
        System.out.println(fruits[2]); // 输出: Orange
        // 修改数组中的元素
        fruits[1] = "Grape";
        System.out.println(fruits[1]); // 输出: Grape
    }
}

先声明,再初始化

这是方法一和方法二的结合,你先声明数组变量,然后在后续的代码中再进行初始化。

示例:

Java如何定义String数组?-图3
(图片来源网络,侵删)
public class Main {
    public static void main(String[] args) {
        // 1. 先声明数组变量,但不指定长度或初始值
        String[] fruits;
        // 2. 在后面的代码中再进行初始化
        // 注意:这一步必须在第一次使用数组之前完成
        fruits = new String[]{"Apple", "Banana", "Orange"};
        // 打印数组
        for (int i = 0; i < fruits.length; i++) {
            System.out.println(fruits[i]);
        }
    }
}

重要补充:数组的遍历

一旦你创建了数组,通常需要遍历(访问)其中的所有元素,有几种常见的方式:

使用 for 循环(传统方式)

通过索引来访问每个元素。

String[] fruits = {"Apple", "Banana", "Orange"};
for (int i = 0; i < fruits.length; i++) {
    System.out.println("Fruit " + i + ": " + fruits[i]);
}

使用 for-each 循环(增强型 for 循环)

这是最推荐、最简洁的遍历方式,尤其当你只需要读取数组元素而不需要关心索引时。

String[] fruits = {"Apple", "Banana", "Orange"};
for (String fruit : fruits) {
    System.out.println("Fruit: " + fruit);
}

使用 Arrays.toString()(用于打印)

如果你想把整个数组的内容以 [elem1, elem2, ...] 的形式打印出来,可以使用 java.util.Arrays 工具类。

import java.util.Arrays; // 别忘了导入这个包
String[] fruits = {"Apple", "Banana", "Orange"};
// 直接打印数组变量,会输出类似 "[Ljava.lang.String;@15db9742" 的哈希码
System.out.println(fruits); 
// 使用 Arrays.toString() 可以得到我们期望的格式
System.out.println(Arrays.toString(fruits)); // 输出: [Apple, Banana, Orange]

总结与对比

方法 语法 特点 适用场景
方法一 String[] arr = new String[3]; 先分配空间,元素默认为 null,后续再赋值。 数组元素的数量确定,但初始值需要在程序运行时才能确定。
方法二 String[] arr = {"A", "B"}; 声明、分配空间、赋值一步完成,非常简洁。 数组的所有初始值在编写代码时就已经明确。
方法三 String[] arr;
arr = new String[]{"A", "B"};
先声明,再初始化,逻辑更清晰,代码可读性高。 在逻辑上,数组的创建和赋值可能发生在不同的代码块中。

最佳实践

  • 如果初始值已知,强烈推荐使用 方法二(静态初始化),因为它最简洁、最易读。
  • 如果初始值未知,但知道元素数量,使用 方法一
  • 在遍历数组时,优先使用 for-each 循环,除非你需要操作元素的索引。
分享:
扫描分享到社交APP
上一篇
下一篇