今天遇见一个问题.不知道怎么解决. 如:
自己建立了一个文件phone.properties
里面存放这样的 键值数据
xxx.id = 1
xxx.name = wang
xxx.sex = F/M
xxx.phone=133238600xxx代表人的名字数据操作类(PropertiesUtil)中定义了一个这样的方法:
public String[] getAllKeys(){}该方法返回配置文件中保存的人员姓名,以数组形式返回(如数组中只有张三、李四,
将返回一个长度为2的String类型数组,里面存储张三、李四姓名)。
请高手帮助下...要怎样做才能实现功能

解决方案 »

  1.   

    Properties.load("phone.properties")
    获得keySet(),然后组装成String数组
      

  2.   

    为什么用properties文件来实现呢?
    properties体现的是key-value的对应关系,对于楼主描述的问题,觉得用csv文件或者数据库来实现更好些.
      

  3.   

    要是能用数据库就好了....别个要求就是那么简单的文件 不一定要是properties后缀的文件 也可以是txt aaa bbb.只要能暂时装一下数据就行了
    关键是其中返回数组的计算方法确实不知道
      

  4.   


    mport java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Properties;
    import java.util.Set;
    import java.util.Vector;public class Propertie { /**
     * @param args
     */
    private String[] midObj = null;
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Propertie pt = new Propertie();
    pt.getMinObj();
    String[] test = pt.getAllKeys();
    for(String p :test)
    System.out.println(p);
    }

    public  void  getMinObj(){ 
    File f = new File("phone.properties");
    Properties pos = new Properties();
    try {
    pos.load(new FileInputStream(f));
    Set<Object> s = pos.keySet();
    Object[] pp = s.toArray();
    midObj = new String[pp.length];
    for(int j=0;j<pp.length;j++)
    midObj[j] = String.valueOf(pp[j]);
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    System.err.println("配置文件phone.properties找不到!!"); 
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } } 

    public  String[] getAllKeys(){
    Vector<String> allKeys = new Vector<String>();
    String[] selectKey = null;
    for(int i=0;i<midObj.length;i++){
    String everykey = midObj[i];
    int firstPos = everykey.indexOf(".");
    if(!allKeys.contains(everykey.substring(0,firstPos)))
    allKeys.addElement(everykey.substring(0,firstPos));
    }
    /*for(int j=0;j<allKeys.size();j++)
    for(int k=j+1;k<allKeys.size();k++){
    if(allKeys.get(j).equals(allKeys.get(k))){
    allKeys.remove(k);
    }
    System.out.println(allKeys.size());
    }*/
    selectKey = new String[allKeys.size()];
    selectKey =  allKeys.toArray(selectKey);
    return selectKey;
    }
    }
      

  5.   

    自己建立了一个文件phone.properties 你的方法有问题,请你参考Spring 里面的映射部分
    特别是Map希望你采用Spring规范的xml格式对对象的属性进行初始化!又简单,又好用,兼容性又好!
      

  6.   

    String name[]=new String[2];
    name[0]="zhangsan";
    name[1]="lisi";
    return name;
      

  7.   

    hmsuccess 兄弟是不是有点太多了??
      

  8.   

    写那么多爪子???别人要求的设计规范 你们不遵循吗???
    程序员干的事情就是接受设计者的要求 不能有变更..要求一个方法实现功能.搞那么复杂那么多花样干嘛...
    下面是我自己终于想出来的答案
    public String[] getAllKeys() { List<String> keys = new ArrayList<String>(); // 得到所有键,并遍历
    for (Enumeration e = pro.propertyNames(); e.hasMoreElements();) { String s = (String) e.nextElement(); //遍历所有元素 // 以.name结尾的串
    if (s.endsWith(".name")) {
    s = s.substring(0, s.length() - 5);
    keys.add(s);
    // System.out.println(s);
    } // System.out.println(e.nextElement());
    } // String[] ss = (String[]) set.toArray(); String[] users = new String[keys.size()]; // 取集合大小 for (int i = 0; i < keys.size(); i++) {
    users[i] = keys.get(i);
    } return users;
    }