2014-04-28 216 views
-1

我对Java仍然很陌生,因此非常感谢任何帮助。字符串分割数组

鉴于.txt文件,我的目标在一个文本行的每个字分配到一个数组,然后每个这些阵列的成父阵列,其排序成

word[linenum-1][wordnum-1] 

实施例,给这个文本文件:

你好,我

的名字是弗雷德和

我喜欢

吃馅饼。

将它们对齐到数组如下:

word[0][0]="Hello," 

word[0][1]="my" 

word[1][0]="name" 

word[1][1]="is" 

word[1][2]="Fred" 

word[1][3]="and" 

word[2][0]="I" 

word[2][1]="like" 

word[3][0]="to" 

word[3][1]="eat" 

word[3][2]="Pie" 

在尝试此,我不断地NullPointerException异常结束时,我打电话给我的方法。 这里是我的代码:

public static String word[][]; 

private static void splitFile(String infile) throws IOException 
{ 
    lineCount = lineNum(infile); 

    buffered = new BufferedReader(new FileReader(infile)); 
    for (i=0;i<lineCount;i++) 
    { 
     String[] temparray = buffered.readLine().split(" "); 
     word[i] = temparray.clone(); 
    } 
    buffered.close(); 
} 

我已经证实,LINENUM工作,一样的readLine。

+1

你的朋友跑进[稍有不同的问题(HTTP://计算器。 COM /问题/ 23333328 /空时,使用分割)。 – devnull

回答

0

你缺少word阵列的初始化,

首先,阅读的行数后,初始化为给定数 - words = new String[lineCount][];

其次,你不必克隆,是由拆分创建的阵列,所以

String[] temparray = buffered.readLine().split(" "); 
word[i] = temparray.clone(); 

可以safetly改为word[i] = buffered.readLine().split(" ")

当然这个假设lineNum返回正确的号码(安全检查阴性和建议0)和readLine()不会返回null