A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

lgh852436078

中级黑马

  • 黑马币:-25

  • 帖子:55

  • 精华:0

© lgh852436078 中级黑马   /  2016-4-11 16:58  /  3717 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4黑马币
a.txt 文本中有下面内容:
age=25: name=张三
age=26: name=李四
------------------------------------
已知:age和name,是person类的两个成员变量,请把这个文本里面的所有信息,组装成一个个的Person对象。然后放在list集合中
最终的结果:list 集合:【new person(“张三”,25),new person (“李四”,26)】

7 个回复

倒序浏览
  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. }
复制代码
回复 使用道具 举报
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();

点评

兄弟啊,你没看清题目呀。要先读取文本里面的内容呀?还有最后的输出结果。  发表于 2016-4-11 22:38

评分

参与人数 1黑马币 +1 收起 理由
lgh852436078 + 1 辛苦了。

查看全部评分

回复 使用道具 举报
啊海 发表于 2016-4-11 22:16
List list = new ArrayList();
list.add(new Person("张三",25));
list.add(new Person("李四",26));

兄弟啊,你没看清题目呀。要先读取文本里面的内容呀。
回复 使用道具 举报
楼主加油吧
回复 使用道具 举报
加油,共同进步
回复 使用道具 举报
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;
                }
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马