如何在java中的for循环外访问字符串变量?

时间:2013-02-12 19:01:45

标签: java

对于我工作的以下代码。现在问题是如何访问for循环外的变量字符串?谢谢。

for (String[] string: arr) {
    if(string.length == 1)
    { 
        System.out.println(string[0]);
        continue;
    }
    for (int i = 1; i < string.length; i++)  {
        System.out.println(string[0] + " " + string[i]);
    }
}

5 个答案:

答案 0 :(得分:3)

您的string变量是本地范围的,只存在于循环中。您需要首先定义外部String[]变量,然后在循环中对该变量进行赋值:

String[] outsideString;

for (String[] string: arr) {
  ...
  outsideString = string;
  ...
}

// This line works
System.out.println(outsideString[0]);

答案 1 :(得分:2)

以下解决方案为您提供所有打印字符串的arraylist。这提供了一个使用字符串数组逻辑创建的arraylist,以便在for loop

之前使用它

即使在for loop

之后,也可以使用finalList打印所有字符串
ArrayList<String> finalList = new ArrayList<String>();

    for (String[] string: arr) {

        if(string.length == 1)
        { 
            System.out.println(string[0]);
            finalList.add(string[0]);
            continue;
        }
        for (int i = 1; i < string.length; i++)  {
            System.out.println(string[0] + " " + string[i]);                
            finalList.add(string[0] + " " + string[i]);
        }   
    }

    for(String output: finalList){
        System.out.println(output);
    }

希望这有帮助。

答案 2 :(得分:0)

您无法提供此代码。在顶部的增强for循环中,您只能将该变量本地用于循环

答案 3 :(得分:0)

你做不到。如果你需要从循环外部的循环中访问某些东西,在循环之外创建一个String或Collection变量,并从循环内部分配/添加它。

答案 4 :(得分:0)

试试这个。

String[] outerString  = {}; 

    for (String[] string: arr) {
        outerString = string;
        if(string.length == 1)
        { 
            System.out.println(string[0]);
            continue;
        }
        for (int i = 1; i < string.length; i++)  {
            System.out.println(string[0] + " " + string[i]);
        }   
    }

    if(outerString.length > 0){
        System.out.println(outerString[0]);
    }

请记住,只有Collection迭代中的最后一项将打印在外部字符串中。