当前位置:首页 > 后端开发 > 正文

Java数组如何存储字符串

在Java中,字符串可通过直接初始化存入数组(如 String[] arr = {"a","b"};),或先声明数组再通过索引赋值(如 arr[0]="text";),数组需固定大小,存入时需确保索引不越界。

声明并初始化字符串数组

方式1:直接初始化(已知字符串内容)

String[] fruits = {"Apple", "Banana", "Orange"}; 
// 创建长度为3的数组,并存入3个字符串

方式2:通过new关键字初始化(先定长度后赋值)

String[] cities = new String[4]; // 声明长度为4的空数组
cities[0] = "Beijing"; // 索引0赋值
cities[1] = "Shanghai";
cities[2] = "Guangzhou";
cities[3] = "Shenzhen"; 

动态存入字符串(循环示例)

通过循环向数组存入用户输入或动态生成的字符串:

Java数组如何存储字符串  第1张

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        String[] names = new String[3];
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < names.length; i++) {
            System.out.print("输入第" + (i+1) + "个名字: ");
            names[i] = scanner.nextLine(); // 存入用户输入的字符串
        }
        // 打印验证
        for (String name : names) {
            System.out.println(name);
        }
        scanner.close();
    }
}

关键注意事项

  • 索引范围:数组索引从0开始,最大为长度-1,越界访问会抛出ArrayIndexOutOfBoundsException
    String[] arr = new String[2];
    arr[2] = "Error"; // 错误!有效索引只能是0和1
  • 默认值:未赋值的字符串数组元素为null(不是空字符串)。
  • 长度不可变:数组一旦创建,长度固定,如需动态扩容,改用ArrayList<String>
    import java.util.ArrayList;
    ArrayList<String> list = new ArrayList<>();
    list.add("Java"); // 自动扩容

多维数组存入字符串

String[][] books = new String[2][2]; 
books[0][0] = "《Java编程思想》";
books[0][1] = "Bruce Eckel";
books[1][0] = "《Effective Java》";
books[1][1] = "Joshua Bloch";

常见问题解决

  • 问题:数组元素意外为null
    检查是否漏掉赋值(如循环次数不足)。
  • 问题:存入非字符串数据
    类型必须严格匹配:int[]不能存String,但Object[]可存任意类型(不推荐)。

  • 单行初始化:String[] arr = {"a", "b"};
  • 分步赋值:arr[index] = "value";
  • 固定长度是核心限制,动态场景用ArrayList替代。

引用说明:本文代码示例基于Oracle官方Java文档的数组规范,遵循Java SE 17语法标准,实践建议参考《Java核心技术 卷I》(Cay S. Horstmann著)中关于数组和集合的章节。

0