当使用for循环使用(element:collection)使用for循环进行收集时,我对数据所做的更改仅在循环期间保持不变。

这是我的代码:

String[] names = {"bob", "fred", "marcus", "robert", "jack", "steve", "nathan", "tom", "freddy", "sam"};

for(String indexData : names)
{
    indexData = indexData.toUpperCase();
    System.out.println(indexData);
}

System.out.println("this is word 5 in the array: " + names[4]);


输出:

BOB
FRED
MARCUS
ROBERT
JACK
STEVE
NATHAN
TOM
FREDDY
SAM
this is word 5 in the array: jack


我的问题是使用这种类型的循环如何进行永久更改?

最佳答案

您不能使用增强的循环来做到这一点。您需要使用传统的for循环。indexData = indexData.toUpperCase();仅更改局部变量indexData,这不会影响您的数组元素。

以下Traditional for loop将更改您的数组

String[] names = {"bob", "fred", "marcus", "robert", "jack", "steve", "nathan", "tom", "freddy", "sam"};


for(int i=0;i<names.length;i++) {

   names[i]= names[i].toUpperCase();
   System.out.println(indexData);

}

 System.out.println("this is word 5 in the array: " + names[4]);

07-24 18:58