如何在java

时间:2018-02-02 18:52:00

标签: java arrays string split

输入文件中有一行。 它的安排如下(例子):

(space)MOV(space)A,(space)(space)#20

当计算机正在读取此行时,我计划拆分()此字符串并添加到数组中。我使用以下代码:

while((nline = bufreader.readLine()) != null)
{
    String[] array = nline.split("[ ,]");

换句话说,字符串用分隔符分隔:(空格)和(逗号)。所以,我希望我的数组长度为3.但实际上我得到6。

所以,据我所知,计算机会创建{"(space)", "MOV", "(space)", "A", "(space)", "(space)", "#20"}数组。但是,我需要这个数组:{"MOV", "A", "#20"}

我怎么能得到这个?或者我如何根据上面提到的分隔符拆分数组。 (我认为nline.split("[ ,]")不正确。)

1 个答案:

答案 0 :(得分:0)

我将评论中的所有解释都放到正确的行中,看看这个:

String nline;
BufferedReader bufreader = new BufferedReader(new FileReader(new File("nameOfYourFile")));
while((nline = bufreader.readLine()) != null) {
    String trimmed = nline.trim(); // removing leading and trailing spaces
    // System.out.println(trimmed); Output from this line: >>MOV A,  #20<< (">>" and "<<" just to show where it begins and ends)
    String[] splitted = trimmed.split("[ |,]{1,}"); // split on ' ' OR ',' that appear AT LEAST once (so it also matches " ," (space + comma))
    System.out.println(Arrays.toString(splitted)); // Output: [MOV, A, #20]
}
bufreader.close();