怎样返回一个String[]对象数组

wangtoby 2008-03-10 10:37:58
今天遇见一个问题.不知道怎么解决. 如:
自己建立了一个文件phone.properties
里面存放这样的 键值数据
xxx.id = 1
xxx.name = wang
xxx.sex = F/M
xxx.phone=133238600

xxx代表人的名字

数据操作类(PropertiesUtil)中定义了一个这样的方法:
public String[] getAllKeys(){

}

该方法返回配置文件中保存的人员姓名,以数组形式返回(如数组中只有张三、李四,
将返回一个长度为2的String类型数组,里面存储张三、李四姓名)。


请高手帮助下...要怎样做才能实现功能


...全文
291 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hmsuccess 2008-03-11
  • 打赏
  • 举报
回复
向caven110请教之
caven110 2008-03-11
  • 打赏
  • 举报
回复
hmsuccess 兄弟是不是有点太多了??
frank_zu 2008-03-11
  • 打赏
  • 举报
回复
mark
wangtoby 2008-03-11
  • 打赏
  • 举报
回复
写那么多爪子???别人要求的设计规范 你们不遵循吗???
程序员干的事情就是接受设计者的要求 不能有变更..要求一个方法实现功能.搞那么复杂那么多花样干嘛...
下面是我自己终于想出来的答案


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;
}
nihuajie05 2008-03-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 java2000_net 的回复:]
自己建立了一个文件phone.properties

你的方法有问题,请你参考Spring 里面的映射部分
特别是Map

希望你采用Spring规范的xml格式对对象的属性进行初始化!

又简单,又好用,兼容性又好!
[/Quote]
好的,去学习下
zzkk_1980 2008-03-11
  • 打赏
  • 举报
回复
String name[]=new String[2];
name[0]="zhangsan";
name[1]="lisi";
return name;
老紫竹 2008-03-11
  • 打赏
  • 举报
回复
自己建立了一个文件phone.properties

你的方法有问题,请你参考Spring 里面的映射部分
特别是Map

希望你采用Spring规范的xml格式对对象的属性进行初始化!

又简单,又好用,兼容性又好!
千里冰封820 2008-03-11
  • 打赏
  • 举报
回复
不错,顶了
shili150 2008-03-11
  • 打赏
  • 举报
回复
学习了
hmsuccess 2008-03-11
  • 打赏
  • 举报
回复

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;
}
}


wangtoby 2008-03-10
  • 打赏
  • 举报
回复
要是能用数据库就好了....别个要求就是那么简单的文件 不一定要是properties后缀的文件 也可以是txt aaa bbb.只要能暂时装一下数据就行了
关键是其中返回数组的计算方法确实不知道
goodmrning 2008-03-10
  • 打赏
  • 举报
回复
学习中
sunnylyy 2008-03-10
  • 打赏
  • 举报
回复
为什么用properties文件来实现呢?
properties体现的是key-value的对应关系,对于楼主描述的问题,觉得用csv文件或者数据库来实现更好些.
临远 2008-03-10
  • 打赏
  • 举报
回复
Properties.load("phone.properties")
获得keySet(),然后组装成String数组

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧