上一篇                     
               
			  Java数组如何存储字符串
- 后端开发
- 2025-06-18
- 4413
 在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";
动态存入字符串(循环示例)
通过循环向数组存入用户输入或动态生成的字符串:


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著)中关于数组和集合的章节。
 
 
 
			 
			 
			 
			 
			 
			