现有一文本字符串对象S,在该字符串有逗号分隔的一系列数据,该数据如下:         ID,    Name,         Mail,             Age,    City,         1,        a,         [email protected],    21,     dalian,         2,      lucky,      [email protected] ,22     beijing,         3,       b,          [email protected],         22,    shanghai,    请设计一 个对该文本进行解析的类,根据该字符串中的逗号解析这个字符串,并放到一个数据对象中要求该类中必须提供实现如下功能的方法:
1.可根据编号将个人信息排序.
2.根据所在城市和姓名查询个人信息
3.对指定的个人信息记录进行修改
4.Struts框架实现

解决方案 »

  1.   

    要在这里写一个完整的struts程序?晕
      

  2.   

    给你说下我的思路把,仅供参考。菜鸟一个
    1,如果以上数据信息是以文本方式存在,你得先用java.io流读如到java对象中来,生成一个string对象or 在读入数据的时候就把他解吸到string数组中当然条件就上逗号;
    这样基本就把数据得到了。
    2,再把你数据存入你说的数据对象中,不了解你需要什么数据对象来存储,自己看着办。除了4问外,到此,2,3问都很容易解决了。
      

  3.   

    下面是将字符串对象解析后放入到List对象中:
    public List parseStr(String str){
    List list = null;
    String[] arr = str.split(",");//把字符串放入到数组中
    int n = arr.length/5;//有多少行记录
    for (int i = 0;i<n;i++){
    String[] str1 = new String[5];
    for (int j=0;j<5;j++){//每行记录有5条数据
    str1[j]=arr[i*5+j];//此处可以根据个人需要,改为放入到其他对象中,譬如:一个实体Bean。
    }
    list.add(str1);
    }
    return list;
    }其他的东西,要帖的话,就太多了,
    应该都不难的啊。
      

  4.   

    简单用普通类写了一下,将字符串组装成了ArrayList,其他的没做,lz为什么不持久化到数据库中操作,岂不是更方便。public class UserInfo { public UserInfo() {
    } private int id;
    private String name;
    private String mail;
    private int age;
    private String city;

    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public String getCity() {
    return city;
    }
    public void setCity(String city) {
    this.city = city;
    }
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getMail() {
    return mail;
    }
    public void setMail(String mail) {
    this.mail = mail;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    }
    import java.util.ArrayList;
    import java.util.Collections;public class test { /**
     * @param args
     */
    public static void main(String[] args) {
    String str = "ID,Name,Mail,Age,City," + "1,a,[email protected],21,dalian,"
    + "2,lucky,[email protected],22,beijing,"
    + "3,b,[email protected],22,shanghai";
    ArrayList a = test.parseStr(str);
    for(int i=0;i<a.size();i++)
    {
    UserInfo u= (UserInfo)a.get(i);
    System.out.println(u.getId()+" "+u.getName()+" "+u.getMail()+" "+u.getAge()+" "+u.getCity());
    }
    } /*
     * 现有一文本字符串对象S,在该字符串有逗号分隔的一系列数据,该数据如下:
     * 
     * ID, Name, Mail, Age, City,
     * 
     * 1, a, [email protected], 21, dalian,
     * 
     * 2, lucky, [email protected] ,22, beijing,
     * 
     * 3, b, [email protected], 22, shanghai,
     * 
     * 请设计一 个对该文本进行解析的类, 根据该字符串中的逗号解析这个字符串, 并放到一个数据对象中要求该类中必须提供实现如下功能的方法:
     * 1.可根据编号将个人信息排序. 2.根据所在城市和姓名查询个人信息 3.对指定的个人信息记录进行修改 4.Struts框架实现
     */
    private static ArrayList parseStr(String str) { String[] array = str.split(",");
    ArrayList list = new ArrayList();
    for (int i = 5; i < array.length; i++) {
    if (i % 5 == 0) {
    UserInfo us = new UserInfo();
    us.setId(Integer.parseInt(array[i]));
    us.setName(array[i + 1]);
    us.setMail(array[i + 2]);
    us.setAge(Integer.parseInt(array[i + 3]));
    us.setCity(array[i + 4]);
    list.add(us);
    }
    } return list;
    }
    }
      

  5.   

    楼主说的是从文本文件里面读出来再进行操作,不是写死的值
    代码太多,不想写啊关键看怎么去读值了[重点]可以横着读,也可以竖着读,也也可以斜斜读(狂笑)读到值以后,建议进行包装成对象,放到ArrayList里再进行处理对于数据的检索等操作就简单了,遍历循环,判断取出符合条件的数据进行处理
    至于用框架,那就看你对代码的理解程度了数据的读取放在持久层,可以写成静态方法对数据的遍历检索等操作放在业务逻辑层页面作为数据的展示
    完了~就这些..