Java 空指针异常,如何使用这些代码打印数组

Java 空指针异常,如何使用这些代码打印数组,java,arrays,arraylist,nullpointerexception,Java,Arrays,Arraylist,Nullpointerexception,我有密码。此代码使用空格或引号拆分多段文本。我想把分裂的部分放到一个数组中。但当我使用这种方法时,我会得到NullPointExceptionerror。你觉得怎么样 arrays = null; //arrays [k] = str.substring(j , (i)).trim() ; //System.out.println(arrays [k]); **阵列和扫描在主屏幕上方定义。 当我尝试ArrayList时,我得到了输出,但它是多个

我有密码。此代码使用空格或引号拆分多段文本。我想把分裂的部分放到一个数组中。但当我使用这种方法时,我会得到
NullPointException
error。你觉得怎么样

    arrays = null;

            //arrays [k] = str.substring(j , (i)).trim() ;




    //System.out.println(arrays [k]);
**阵列和扫描在主屏幕上方定义。 当我尝试ArrayList时,我得到了输出,但它是多个。 例如: a、b、c、d a、b、c、d . .
多行相同的内容。

我只需快速查看一下,就可以看到您已声明
String[]arrays=null但不初始化它,然后使用它
数组[k]
,这是一个空指针。你必须初始化它。类似于
String[]数组=新字符串[6]。您可能需要动态添加长度。

您声明了
数组=null
,因此当您尝试访问
数组
时,实际上您正在访问
null
,因此您会得到一个NullPointerException。您想将
数组
声明为
字符串[]数组=新字符串[x]
,其中
x
是数组的大小。如果您事先不知道大小,则需要使用
ArrayList
。您可以通过说
List List=new ArrayList()
(从Java 5到泛型)来声明这一点。您可以通过说
list.add(item)来添加元素

请尝试使用“”

使用“compareTo”方法进行比较


不要将数组初始化为null

变量
arrays
在声明后的任何地方都没有初始化。除非要求您使用数组,否则您可能会使用
ArrayList
,当您退出读取循环时,可以将其转换为数组。ArrayList提供了错误的输出错误的输出与您的控制流(读取循环和驱动文本处理的条件)有关,而不是使用数组上的列表。好的,那么我该怎么办呢?你必须重新思考你的算法,或者调试它,找出哪里出了问题以及代码中的什么地方。我会使用从文件中一次性读取的预键入文本,然后我会对其应用拆分算法并逐步调试,直到我找出错误;字符c2='y';c1.比较到(c2)并不要将数组初始化为null如果我没有初始化为null,编译器会给我errorString[]arrays=new String[1024]如果拆分部分大于1024,我不知道文本中有多少行。谢谢,但是如果文件的大小大于我输入的大小?没有回答你的问题。请解释“比我输入的大小大”是什么意思?OP表示“如果事先不知道大小,我无法初始化未知大小的数组”,例如=新字符串[26]。。如果我的分裂部分大于,大于26。(举个例子)好的。不用担心,您可以创建一个起始大小的数组,比如说10,然后您可以编写逻辑,以便在每次需要更多时对其进行扩展。或者只使用收集列表
char c1 = 'x'; 
char c2 = 'y'; 
c1.compareTo(c2)