当前位置: 代码迷 >> J2SE >> 怎么忽略BufferedReader的readLine()读到的中间多个空格
  详细解决方案

怎么忽略BufferedReader的readLine()读到的中间多个空格

热度:6811   发布时间:2013-02-25 00:00:00.0
如何忽略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("\\ +");

一个或多个空格匹配
  相关解决方案