对于我工作的以下代码。现在问题是如何访问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]);
}
}
答案 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
。
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迭代中的最后一项将打印在外部字符串中。