黑马程序员技术交流社区

标题: 这个考试题目有点晕菜求解 [打印本页]

作者: lgh852436078    时间: 2016-4-11 16:58
标题: 这个考试题目有点晕菜求解
a.txt 文本中有下面内容:
age=25: name=张三
age=26: name=李四
------------------------------------
已知:age和name,是person类的两个成员变量,请把这个文本里面的所有信息,组装成一个个的Person对象。然后放在list集合中
最终的结果:list 集合:【new person(“张三”,25),new person (“李四”,26)】


作者: 菊花爆满山    时间: 2016-4-11 16:58
  1. package com.heima.text;

  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.util.ArrayList;
  5. import java.util.List;

  6. public class Demo4 {

  7.         public static void main(String[] args) throws Exception {
  8.                
  9.                 List<Person> al = new ArrayList<>();
  10.                 BufferedReader buf = new BufferedReader(new FileReader("a.txt"));
  11.                
  12.                 String line = null;
  13.                 while((line = buf.readLine()) != null) {
  14.                        
  15.                         String[] strArr2 = new String[2];
  16.                         int index = 0;
  17.                         String[] strArr = line.split(":");  //分割字符串  age=25  name=张山
  18.                         for(String s : strArr) {
  19.                                 strArr2[index++] = s.replaceAll("[a-z]{3,4}=", "");  //获取属性值 将属性值存入数组strAArr2中
  20.                         }
  21.                         al.add(new Person(strArr2[1], Integer.parseInt(strArr2[0]))); //添加Person对象
  22.                        
  23.                 }
  24.                  //遍历集合
  25.                 for(Person p : al) {  
  26.                         System.out.println(p);
  27.                 }
  28.                 buf.close();
  29.         }

  30. }
  31. class Person {   //bean类
  32.         private String name;
  33.         private int age;
  34.         public Person(String name, int age) {
  35.                 super();
  36.                 this.name = name;
  37.                 this.age = age;
  38.         }
  39.         public String getName() {
  40.                 return name;
  41.         }
  42.         public void setName(String name) {
  43.                 this.name = name;
  44.         }
  45.         public int getAge() {
  46.                 return age;
  47.         }
  48.         public void setAge(int age) {
  49.                 this.age = age;
  50.         }
  51.         @Override
  52.         public String toString() {
  53.                 return "Person [name=" + name + ", age=" + age + "]";
  54.         }
  55.        
  56. }
复制代码

作者: 啊海    时间: 2016-4-11 22:16
List<Person> list = new ArrayList<Person>();
list.add(new Person("张三",25));
list.add(new Person("李四",26));

Iterator<Person> it = list.iterator();
while(it.hasNext()){
       Person  p = it.next();
       System.out.println(p.getName()+"..."+p.getAge());
}

在Person类里面你要重写equals() toString()方法还有hashCode();
作者: lgh852436078    时间: 2016-4-11 22:36
啊海 发表于 2016-4-11 22:16
List list = new ArrayList();
list.add(new Person("张三",25));
list.add(new Person("李四",26));

兄弟啊,你没看清题目呀。要先读取文本里面的内容呀。
作者: cx781271119    时间: 2016-4-13 22:23
楼主加油吧
作者: 小红花    时间: 2016-4-20 11:49
加油,共同进步

作者: gaojiangjian    时间: 2016-6-30 00:47
static String filename = "/Users/gaojiangjian/Desktop/笔记.txt";

        public static void main(String[] args) throws IOException {
                Reader reader = new FileReader(filename);
                BufferedReader bufferedReader = new BufferedReader(reader);
                String str = null;
                 
                List<Person> list=new ArrayList<TextNum.Person>();
                while ((str = bufferedReader.readLine()) != null) {
                        String[] st1 = str.split(":");
                        Person person=new Person();
                        person.setAge(st1[0].split("=")[1]);
                        person.setName(st1[1].split("=")[1]);
                        list.add(person);
                }
                Iterator<Person> iterator=list.iterator();
                while(iterator.hasNext()){
                        Person person=iterator.next();
                        System.out.println("age="+person.getAge()+"name="+person.getName());
                }
                reader.close();
                bufferedReader.close();
        }
        static class Person{
               
                String name;
                String age;
                public String getAge() {
                        return age;
                }
                public void setAge(String age) {
                        this.age = age;
                }
                public String getName() {
                        return name;
                }
                public void setName(String name) {
                        this.name = name;
                }
        }




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