繁体   English   中英

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

[英]How to access the string variable outside the for loop in 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]);
    }
}

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

String[] outsideString;

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

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

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

即使在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);
    }

希望这可以帮助。

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

你不能 如果需要从所述循环外部的循环访问某些内容,请在循环外部创建String或Collection变量,然后从循环内部为其分配/添加变量。

尝试这个。

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迭代中的最后一项将被打印在外部字符串中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM