我遇到一个小问题...弄了一周没弄好.请问大家有这么一个文件salary.txt 每行3个数据,之间用空格分开
1 44 4000
2 45 3875
3 32 3875
4 44 4200
...然后我想建立一个数组data[200][200][200]来储存这些数据.如何识别txt文件中的空格和换行.另外一个问题.这个数组data[][][]我想按照工资重新分组. 4000的放到一起,5000的放到一起.最后生成一个数组,里面保存的就是工号. [1][14][15][26]..问题是,不确定每个工资有多少人.就是不确定4000的有多少人.这两个问题如何实现?想了好久....感谢各位

解决方案 »

  1.   

    有個函數是一行行讀的,查下java_document。
    每讀一行后,然后用空格字符分割字符串數組。
    分貝對數組成員一一分析,統計你想要的。
      

  2.   


    try {
    FileInputStream fis = new FileInputStream("salary.txt");
    InputStreamReader isr = new InputStreamReader(fis);
    BufferedReader br = new BufferedReader(isr);
    String str = "";
    //如果有下一行 读取下一行
    while((str=br.readLine())!=null){
    //用空格分割字符串
    String[] strs = str.split(" ");
    //...下面略
    }
    ;
    } catch (IOException e) {
    e.printStackTrace();
    }第二个问题没太看懂,是不是说工资4000-5000的放成一个数组,然后5000-6000的放成一个数组?不确定长度的话可以用List或者Set嘛,干嘛非要用数组呢
      

  3.   

    try {
                FileInputStream fis = new FileInputStream("salary.txt");
                InputStreamReader isr = new InputStreamReader(fis);
                BufferedReader br = new BufferedReader(isr);
                String str = "";
                
                while((str=br.readLine())!=null){//如果有下一行 读取下一行
                    //用空格分割字符串
                    String[] strs = str.split(" ");
                    //...下面略
                }
                ;
            } catch (IOException e) {
                e.printStackTrace();
            }
      

  4.   

     感谢上面3楼。数组录入已经基本上成功了 [ 不过有时候抛空指针异常。]。现在我问题出在对这个数组进行分组。[唉,自己写作业确实很难,不过比抄来抄去好]有一列是员工的工资,这个工资我想进行分组,4000元的一组,5000元的一组。最后给出的是一个员工工号的列表。 不同的组放在一起 31 45 23 24 51 。。50 14 52 30 22   。。我看了java文档,[感谢2楼],list是动态数组,可是list只能添加对象。---我是否要用bean做一个数据对象类[UserValue]来封装数据,然后往这个list里面添加对象?然后list是如何把这几个不同组的人处理掉?请教各位。有机会请客喝酒
      

  5.   

    String[] strs = str.split("\\s+"); 应这个,多个空格而不只是一个空格,也许能解决你的空指针问题。
      

  6.   

    还是有些问题...出在输入数据上面.try { 
                FileInputStream fis = new FileInputStream("salary.txt"); 
                InputStreamReader isr = new InputStreamReader(fis); 
                BufferedReader br = new BufferedReader(isr); 
                String ReaderString = ""; 
                            while((ReaderString = br.readLine())!=null)
                            { 
                                String[] strs = str.split(" "); 
                             System.out.print("ReaderString is " + ReaderString + " Strs is ");
                             System.out.println(Strs);
                            } 
    发现Strs是乱码.另外,ReaderString是字符串.   我想用整数数组来做运算. 读出来都是一行行的字符串.希望建立一个三维的数组, 一维来保存序号,一维是工资,一维是工号.如何把文件流读到这么一个数组里面?try { 
                FileInputStream fis = new FileInputStream("salary.txt"); 
                InputStreamReader isr = new InputStreamReader(fis); 
                BufferedReader br = new BufferedReader(isr); 
                int ReaderString = ""; 
                            while((ReaderString = br.readLine())!=null)//这里整数数组不能读空格,也不能是null,想了半天头疼
                            { 
                             String[] strs = str.split(" "); 
                             System.out.print("ReaderString is " + ReaderString + " Strs is ");
                             System.out.println( Strs );
                            } 
      

  7.   

        public BinPackingMain() throws FileNotFoundException {
        
         allItems = new ItemList();
        
         File f = new File("data/Items.txt");
         Scanner scanner = new Scanner(f);
         String inputLine;
        
         // If the file still has a "line"
         while (scanner.hasNextLine()) {
         inputLine = scanner.nextLine();
         Item i = createItemFromLine(inputLine);
         allItems.addItem(i);
         //itemList.addItem(i);
               // System.out.println(i);
            }
        
        } // End of constructor