首页 > 解决方案 > Java-字符数组接受整个字符串,即使声明的大小较小

问题描述

我一直在尝试理解 Java 中的字符串处理技术,而我发现我的代码正在接受初始化为字符串对象的整个字符串为一个比该字符串对象中的字符数更小的字符数组。我的示例代码:

public class test{
    public static void main(String args[]){
        String s = new String ("Test String");
        char ch[] = new char[0];
        
        ch = s.toCharArray();
        
        for (int i = 0 ; i < s.length() ; i++ ){
            System.out.print(ch[i]);
        }
    }
}

虽然我已将ch大小初始化为 0,但整个字符串 ins正在输出中打印。它不应该给我一个错误,说明初始化的数组小于字符串中字符的长度s吗?如果我的理解有误,有人可以帮助我吗?

标签: javaarraysstringindexoutofbounds

解决方案


有了这条线

ch = s.toCharArray();

您将变量指向从内部数组ch创建的 char数组s

你需要类似的东西

ch = Arrays.copyOfRange(s.toCharArray(), 0, 1);

推荐阅读