在课堂上我有这个领域:
public static String[] substring;
现在我尝试用以下内容初始化此变量:
for(int i = 0; i < MAX_SUBSTRING; i++){
substring[i] = new String();
}
但接下来发生的事情是我得到一个NPE,在substring [i]的行上。我知道这是因为子串在声明时没有得到值,但是当我给它值时,每个索引指向相同的位置。有点像每本书都指向另一本书,打开一本书意味着所有其他书同时打开。
public static String[] substring = new String[MAX_STRING];
我对此数组的任何索引所做的任何更改都会影响其余部分。通过以上方式,我可以避免NPE,但随后又出现了另一个问题!
还是初学者,有人可以帮助我吗?
我正在使用Java。
答案 0 :(得分:0)
我假设您使用的是Java(因为您没有指定)。
矢量子串的初始化很好。我不能复制你的问题。你如何改变矢量元素?
此外,MAX_STRING和MAX_SUBSTRING的值是否相同?为什么将substring声明为静态变量?