Java 如何使用for循环将带数字的字符串变量设置为"&引用;?
我继承了一个需要更改的Java程序。在代码的一部分中,我看到我创建了1000多个字符串变量,例如:Java 如何使用for循环将带数字的字符串变量设置为"&引用;?,java,Java,我继承了一个需要更改的Java程序。在代码的一部分中,我看到我创建了1000多个字符串变量,例如: String field01 String field02 ... String field1000 我想创建一个for循环,将所有提到的变量设置为”,但是我在为for循环构建正确的格式时遇到了问题 如何在for循环中创建field+(I)以将field01设置为”,并将其余字段设置为 在Java中不能真正做到这一点。另一种方法是创建一个字符串数组,其中数组的索引是所需变量的编号。所
String field01
String field02
...
String field1000
我想创建一个for循环,将所有提到的变量设置为”
,但是我在为for循环构建正确的格式时遇到了问题
如何在for循环中创建field+(I)以将field01设置为
”
,并将其余字段设置为 在Java中不能真正做到这一点。另一种方法是创建一个字符串数组,其中数组的索引是所需变量的编号。所以field01将存储在索引1的字符串数组中。A for循环。。。可以将其设置为数组,但实际上没有任何方法可以在没有数组的情况下将其设置为for循环
这里有一个例子:
String[] test = new String[1000];
for (int number; numer < 1000; number++){
test[number] = "";
}
String[]test=新字符串[1000];
用于(整数;数字<1000;数字++){
测试[编号]=“”;
}
首先,创建一个数组。第二,使用数组。填充:
String[] fields = new String[1000];
Arrays.fill(fields, "");
稍后,您可以通过索引访问或修改单个变量,如字段[index]
用相似的名称创建1000个变量不是人们用Java编程的方式。我知道这不是确切的答案,但可能会对您有所帮助。或者您需要使用反射
Map<String, String> container = new HashMap<String, String>();
for (int i = 0; i <1000; i++) {
container.put("field"+ i, "\"\" ");
}
Map container=newhashmap();
对于(inti=0;i您必须使用反射来执行相同的操作
class Test {
String field1
String field2
...
String field1000
}
public class FieldTest {
public static void main(String args[]) {
Test t = new Test();
Class cls = t.getClass();
for(int i=0 ; i<=1000; i++){
Field f1 = cls.getField("field"+i);
f1.set(t, "");
}
}
}
类测试{
字符串字段1
字符串字段2
...
字符串字段1000
}
公开课实地测试{
公共静态void main(字符串参数[]){
测试t=新测试();
类cls=t.getClass();
对于(int i=0;iIn Java,没有动态变量。很遗憾,您不能循环使用一组不同的变量名。@skandigraun您可以使用反射来伪造它,但它仍然是糟糕的设计,应该进行重构而不是改进。您“可以”使用反射,但您只是在传播问题(通常会使情况更糟)。更好的解决方案是用数组或列表替换字符串字段{n}
,如果变量(而不是字段)反射没有帮助的话。@TagirValeev这是真的,但无论如何我都不鼓励这种想法