黑马程序员技术交流社区

标题: 入学考试第十题 关于数据提取的问题求解答 [打印本页]

作者: beizhi    时间: 2017-3-11 22:20
标题: 入学考试第十题 关于数据提取的问题求解答
a.在项目根目录下手动创建food.txt文件(某饭店菜单),
菜名-价格-折扣(比如:0.8是8折,1代表没有折扣)文件内容如下:
     京酱肉丝-28-0.8
     锅包肉-48-0.6
     皮蛋豆腐-12-0.9
     烧茄子-15-1
     水煮肉片-38-0.5
     拍黄瓜-10-1
    大盘鸡-56-0.9
b.自定义Food类,属性:菜名(String),价格(int),折扣(double),生成对应的set/get方法,满参构造
c.创建Test测试类在main方法中利用流读取food.txt文件中的内容,并且生成对应的Food对象,存放到任意集合中


小弟 提取出数据之后 想用split()把数据提取出来 因为有-但是提取出来就是数组了 感觉方向不对啊,,各位大神有什么想法吗
。。。。。。


作者: Mr_Maty    时间: 2017-3-12 00:20
读取出文件的每行,然后每行用split分割,然后遍历数组,把不同角标的元素放到对应的参数位置
是我没明白你的意思???

作者: 小黄哥    时间: 2017-3-12 01:11
方向是对的,只是切割出来的都是string类型的数据,你通过一些方法转换数据类型,下面的你应该就会了

作者: lvshen9    时间: 2017-3-12 08:44
int a=Integer.pasInt(str)

作者: beizhi    时间: 2017-3-12 12:13
lvshen9 发表于 2017-3-12 08:44
int a=Integer.pasInt(str)

您好,我想问一下这个题用什么集合做比较好啊,我用的ArrayList的泛型。我不知道是不是可以
作者: lvshen9    时间: 2017-3-12 12:54
beizhi 发表于 2017-3-12 12:13
您好,我想问一下这个题用什么集合做比较好啊,我用的ArrayList的泛型。我不知道是不是可以 ...

List Set都可以
作者: beizhi    时间: 2017-3-12 13:38
Mr_Maty 发表于 2017-3-12 00:20
读取出文件的每行,然后每行用split分割,然后遍历数组,把不同角标的元素放到对应的参数位置
是我没明白你 ...

是这个意思啊、、
作者: mrwalker    时间: 2017-3-13 09:05
你是自学后参加就业班的面试题吗?
作者: lvshen9    时间: 2017-3-13 10:50
分享交流一下

[Java] 纯文本查看 复制代码
package myexam.test26;

import java.awt.List;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

/**
*
* 创建Test测试类在main方法中利用流读取food.txt文件中的内容,并
* 且生成对应的Food对象,存放到任意集合中
*
* 创建一个测试类满足以上功能
* @author lvshen
*
*/
public class Test26 {

        public static void main(String[] args) throws IOException {
                File file=new File("food.txt");
                getData(file);
        }
        /**
         * 创建一个获取数据的方法,并实现指定功能
         * @param file  文件
         * @throws IOException  IO异常
         */
        public static void getData(File file) throws IOException{
                //创建一个arraylist对象
                ArrayList<Food> arraylists=new ArrayList<Food>();
                //文件如果不存在,创建
                if(!file.exists()){
                        file.createNewFile();
                }
                //创建一个字符读取流对象
                BufferedReader bufr=new BufferedReader(new FileReader(file));
                String line=null;
                //逐行读取文件
                while((line=bufr.readLine())!=null){
                        String[] str=line.split("-");
                        //把文件存入到指定集合中
                        arraylists.add(new Food(str[0],Integer.parseInt(str[1]),Double.parseDouble(str[2])));
                }
                //关闭读取流
                bufr.close();
                for (Food food : arraylists) {
                        System.out.println(food.getName()+","+food.getPrice()+","+food.getDiscount());
                }
        }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2