今天遇见一个问题.不知道怎么解决. 如:
自己建立了一个文件phone.properties
里面存放这样的 键值数据
xxx.id = 1
xxx.name = wang
xxx.sex = F/M
xxx.phone=133238600xxx代表人的名字数据操作类(PropertiesUtil)中定义了一个这样的方法:
public String[] getAllKeys(){}该方法返回配置文件中保存的人员姓名,以数组形式返回(如数组中只有张三、李四,
将返回一个长度为2的String类型数组,里面存储张三、李四姓名)。
请高手帮助下...要怎样做才能实现功能
自己建立了一个文件phone.properties
里面存放这样的 键值数据
xxx.id = 1
xxx.name = wang
xxx.sex = F/M
xxx.phone=133238600xxx代表人的名字数据操作类(PropertiesUtil)中定义了一个这样的方法:
public String[] getAllKeys(){}该方法返回配置文件中保存的人员姓名,以数组形式返回(如数组中只有张三、李四,
将返回一个长度为2的String类型数组,里面存储张三、李四姓名)。
请高手帮助下...要怎样做才能实现功能
获得keySet(),然后组装成String数组
properties体现的是key-value的对应关系,对于楼主描述的问题,觉得用csv文件或者数据库来实现更好些.
关键是其中返回数组的计算方法确实不知道
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;
}
}
特别是Map希望你采用Spring规范的xml格式对对象的属性进行初始化!又简单,又好用,兼容性又好!
name[0]="zhangsan";
name[1]="lisi";
return name;
程序员干的事情就是接受设计者的要求 不能有变更..要求一个方法实现功能.搞那么复杂那么多花样干嘛...
下面是我自己终于想出来的答案
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;
}