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著)中关于数组和集合的章节。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/28876.html