我一共有10000行的数据,但是用split方法获取到的行数却有10035行,多了35行,这个问题怎么解决?
String[] pNums = null;
String pNum = "";//这里有一万行
pNums = pNum.split("\r");
num = pNums.length;
System.out.println(num);

解决方案 »

  1.   

    很可能中间有空行也就是连续的\r\r,这个spilt会当作两行来识别。你可以简单检测下:
      pNums = pNum.split("\r\r");
    或者:
      pNums = pNum.split("\r\n\r");不过如果中间还带了空格的话,还是检测不出来。
      

  2.   

    好像不是这个问题哦,我两百行都是正常的,但是300行,我是直接复制了100行,直接打印410行了
    我用那个StringUtils的split方法截取出来也是一样的结果
      

  3.   

    如果原信息是来自于文件的话,其实不如直接用new Scanner(new File("xxoo")) 来读取文件,然后直接 nextLine 就完事了。
      

  4.   

    byte[] b = new byte[1024];我读到这个里面,就是有问题了每次都有1024个字节。所以300和400差不多。。悲剧,少了读取慢,多了读取又数字有问题。。
      

  5.   

    你是用什么方法读的?
    read(byte[] bytes)返回的就是实际读到的字节数呀
      

  6.   


    连续读的写法可能不正确。Anyway,这种重复发明轮子的事情。为啥不用5楼的方法呢?