代码之家  ›  专栏  ›  技术社区  ›  Blackjack

Java:将字符串的值赋给

  •  -2
  • Blackjack  · 技术社区  · 6 年前

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

    我已经 预期 结果如下:

    &

    但我把这个当做 事实上 结果:

    我怎样才能得到预期的结果?有人能解释为什么我得到这个结果吗?

    谢谢

    4 回复  |  直到 6 年前
        1
  •  0
  •   azro    6 年前

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

    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]);
        }
    }
    
        2
  •  0
  •   Youcef LAIDANI    6 年前

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

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

    String operator = "n" + n;
    System.out.println(map.get(operator));
    

    完整的代码可以是这样的:

    Map<String, String> map = Map.of("n0", "&", "n1", "|", "n2", "^", "n3", "~");
    for (int n = 0; n < map.size(); n++) {
        if (n < 3) {
            System.out.println(map.get("n" + n));
        }
    }
    
        3
  •  0
  •   Julio Arboleda    6 年前

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

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

        int[] anArray;
    

    分为:

        String[] anArray;
    

    图德尔

        4
  •  0
  •   Vajk    6 年前

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

    这段代码将变量添加到一个数组中,然后遍历这个数组并打印保存在数组中的值,即变量。