我有field1 field2 field3等多个String
我现在的程序是在一个FOR循环里面
所以要"field"+i这样子来得到filed1 fied2 field3的值
String field1="hangzhou";
String field2="ningbo";
String field3="jinghua";
for(i=1;i<=vc.size();i++)
{
System.out.println("field"+i);
}
但是输出的结果是field1 field2 field3 要怎么才能得到hangzhou ningbo jinghua呢
请教高手
我现在的程序是在一个FOR循环里面
所以要"field"+i这样子来得到filed1 fied2 field3的值
String field1="hangzhou";
String field2="ningbo";
String field3="jinghua";
for(i=1;i<=vc.size();i++)
{
System.out.println("field"+i);
}
但是输出的结果是field1 field2 field3 要怎么才能得到hangzhou ningbo jinghua呢
请教高手
map.put("field1", hangzhou);
map.put("field2", "ningbo");
map.put("field3", "jinghua");for(i = 1; i <= map.size(); i++) {
System.out.println(map.get("field" + i));
}
ScriptEngine engine=manager.getEngineByName("JavaScript");
try{
engine.eval("var field1='hangzhou'");
engine.eval("var field2='ningbo'");
engine.eval("var field3='jinghua'");
for(i=1;i<=3;i++){
System.out.println(engine.eval("field"+i));
}
} catch (ScriptException e) {
return;
}在JDK1.6下正常执行
field[2]="ningbo";
field[3]="jinghua";
for(i=1;i<field.length;i++)
{
System.out.println(field[i]);
}
基本数据类型将转换成与其值对应的字符串,类对象则调用其toString()方法,转换成相应字符串。
因此在lz所举的例子中,“field”+i 最终会生成一个新的字符串对象:“field1”(或2,3)。而System.out.println(String str)方法是将其参数按照字符串输出,而不会将field1当成变量名输出其值。
LZ想要的方法以上各位已经提供了很好的思路了,个人觉得用数组就不错。:)
String field2="ningbo";
String field3="jinghua";
public void print() {
for(int i=1;i<=3;i++){
try {
Field field = this.getClass().getDeclaredField("field"+i);
System.out.println(field.get(this));
} catch (Exception e) {
e.printStackTrace();
}
}
}