输入文件中有一行。 它的安排如下(例子):
(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("[ ,]")
不正确。)
答案 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();