如何忽略BufferedReader的readLine()读到的中间多个空格
public static String[] readCmd() throws Exception
{
print("command>");
String str=br.readLine().trim();//忽略前导空白和尾部空白,中间的并没有滤掉
return str.split(" ");
}
command> reserve a b
name row col bookNumber
=========================
0 0 k99-0
a 0 1 k99-1
0 2 k99-2
b 0 3 k99-3
command>
多读了两个空格
------最佳解决方案--------------------可以得到数组后,继续对每个元素for循环进行trim操作,然后存进另一个数组,然后返回该数组。
------其他解决方案--------------------最后拆分字符串的时候可以str.split("[ +]")
------其他解决方案--------------------用这句试试:
String str=br.readLine().trim().replaceAll(" ","");
------其他解决方案--------------------抱歉,2楼回答有误,没看清楼主的意思。
------其他解决方案--------------------楼主改成下面的试一试
while((str=br.readLine())!=null){
splitStr(str);
//System.out.println(br.readLine());
}
public static void splitStr(String str){
String[] s;
str=str.trim();
s=str.split(" ");
/*for(Object o:s){//这里可以测试一下
System.out.println(o);
}*/
return s;
}
我文件里面的内容: grgr gregre greg gr ;
输出结果:
grgr
gregre
greg
gr
长度为4
------其他解决方案--------------------String[] temp=str.split("\\ +");
一个或多个空格匹配