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,但 s 中的整个字符串都将打印在输出中。它不应该给我一个错误,说明初始化的数组小于字符串 s 中字符的长度吗?如果我的理解有误,有人可以帮助我吗?

解决方法

有了这条线

ch = s.toCharArray();

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

你需要类似的东西

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