Java:将字符串的值分配给循环内的新字符串

时间:2018-12-15 23:00:50

标签: java

我是Java的新手,我试图在循环内将字符串的值分配给另一个字符串,这是示例:

 public static void main(String[] args) {

      int j = 100;
      int k = 20;
      String n0 = "&";
      String n1 = "|";
      String n2 = "^";
      String n3 = "~";
      for(int n = 0; n < 4; n++)
      {
        if(n < 3){
            String operator = "n"+n;
            System.out.println(operator);    
        }
      }
}

我已经预期这样的结果:

  

&| ^

但是我得到的是实际上结果:

  

n0 n1 n2

如何获得预期的结果?谁能解释为什么我得到了这个结果?

谢谢

4 个答案:

答案 0 :(得分:0)

您不能使用其名称调用变量,例如,需要将其存储在数组中:

String[] operators = {n0, n1, n2, n3};
// or directly 
//String[] operators = {"&", "|", "^", "~"};
for (int n = 0; n < 4; n++) {
    if (n < 3) {
        String operator = operators[n];
        System.out.print(operator);
        // or directly 
        //System.out.print(operators[n]);
    }
}

答案 1 :(得分:0)

您尝试按名称访问变量,但这是不可能的,相反,您可以创建一个包含键div以及期望值的映射,如下所示:

/** @type {HTMLElement} */
const kwadrat = document.querySelector('.square');

然后您可以获取值:

n1, n2, ..

完整的代码就像这样:

Map<String, String> map = Map.of("n0", "&", "n1", "|", "n2", "^", "n3", "~");

答案 2 :(得分:0)

您可能要使用数组,请参见:

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

尝试使用“ ArrayDemo”示例,但更改该行

    int[] anArray;

进入:

    String[] anArray;

并修复可能产生的错误。

面条

答案 3 :(得分:0)

您正在做的是打印与当前循环索引串联的字符串“ n”。您针对索引0、1和2运行了3次循环。这就是为什么得到“ n0”,“ n1”和“ n2”的原因。如果您实际上想通过循环访问变量,则需要将它们放入适当的数据结构中,例如数组(如其他人所述)。如果要将字符串放入数组,可以使用以下示例:

String n0 = "&";
String n1 = "|";
String n2 = "^";
String n3 = "~";
String[] operators = {n0, n1, n2, n3};
for (int i = 0; i < operators.length; i++) {
    String operator = operators[i];
    System.out.println(operator);
}

此代码将您的变量添加到数组,然后遍历该数组并打印保存在数组中的值,即您的变量。