請問:在一個文件中(内容如下)  
   24 R870/NP          10.0      10.0      0.0  314
   25 R871/NP          10.0      10.0      0.0  375
   ........
   44 RN13_1_2/NP      10.0      10.0      0.0  755
   ........
   100 RN31_1_2/NP      10.0      10.0      0.0  315
   ........
   如何選取每行序號之後,“/”符號之前的字段,如第一行的“R870”   3Q!!
(因爲我的分數比較少,還有比較多問題要問,所以只能給這麽一點點。
謝謝大家^-^)

解决方案 »

  1.   

    (1)读一行,substring
    (2)如果每行长度固定,用RandomAccessFile 的seek(位置),读4个字节
      

  2.   

    只讲几个语句,具体自己补充。
    BufferedInputStream in = ......;
    String line = in.readLine();
            //这个时候line = " 24 R870/NP          10.0      10.0      0.0  314";
            line = line.substring(0,line.indexOf("/"));
            String needed = line.substring(line.lastIndexOf(" ")+1,line.length());//你要的
      

  3.   

    恩,就我那样就可以了。OVER。
      

  4.   

    謝謝莫飛給我的提示,下面的代碼實現了按要求獲取了第一行的字符串             BufferedInputStream in1=new BufferedInputStream(new FileInputStream("D:\\file\\1.txt"));
                 DataInputStream in=new  DataInputStream(new LineNumberInputStream(in1));
                 String line=in.readLine ();
                 line=line.substring(0,line.indexOf("/"));
                 String needed=line.substring(line.lastIndexOf("  ")+1);
                 
                 System.out.println(needed); 
                 in.close();
      

  5.   

    加上下面的就可以读取全部了
                 BufferedInputStream in1=new BufferedInputStream(new FileInputStream("D:\\file\\1.txt"));
                 DataInputStream in=new  DataInputStream(new LineNumberInputStream(in1));
                 String line=in.readLine ();
                 while(line!=null){/////////////////////new
                 line=line.substring(0,line.indexOf("/"));
                 String needed=line.substring(line.lastIndexOf("  ")+1);
                 
                 System.out.println(needed); 
                  line=in.readLine ();}///////////////////////new             }///////////////////////new
                 in.close();
      

  6.   

    莫飛,怎麽設置substring裏的參數,String needed=line.substring(line.lastIndexOf("  ")+1);
    對於文件:24 R870/NP          10.0      10.0      0.0  314
              25 R871/NP          10.0      10.0      0.0  375
               ........
              44 RN13_1_2/NP      10.0      10.0      0.0  755
               ........
              100 RN31_1_2/NP      10.0      10.0      0.0  315
              ........使它截取每行的字符串是:R870
                            R871
                            .....
                            RN13_1_2
                            .....
                            RN31_1_2
      

  7.   

    读完一行后,用
    String[] aa=linedata.split("/");
    aa[0]应该就是所求字段
      

  8.   

    line=line.substring(0,line.indexOf("/"));
                 String needed=line.substring(line.lastIndexOf("  ")+1);
    一起工作才行,不知道你最后一贴是什么意思?
                 line=line.substring(0,line.indexOf("/"));
    是取得/前面的字段
                 String needed=line.substring(line.lastIndexOf("  ")+1);
    是取得空格后的字段啊。
      

  9.   

    to:魚魚
        可是我不要每行前面的序號,要的是序號后的空格之后的字符串,到“/”爲止。代碼是樓上莫飛的。用 line=line.substring(0,line.indexOf("/"));這一句可獲得“/”之前的所有字符了
      

  10.   

    to 莫飛:
          問題是對於文件中的每一行,如:
      
          第一個空格24第二個空格R870/NP          10.0      10.0      0.0  314
           .......
          第一個空格100第二個空格R870-1-3/NP          10.0      10.0      0.0  314 要求要取的是第二個空格后的字符......
      

  11.   

    謝謝大家幫我解決這個問題,特別是莫飛。
    line = line.substring(0,line.indexOf("/"));
    String needed = line.substring(line.lastIndexOf(" ")+5);