我正在使用 for each 循环来访问字符串数组的每个元素并检查这些字符串的特定特征。如果当前元素已显示所需的字符,我需要访问此循环中的下一个元素。所以当前的开启对我来说只是一个指标,下一个是我需要掌握和处理的。有没有办法存储当前的并处理正确的下一个?
谢谢
我正在使用 for each 循环来访问字符串数组的每个元素并检查这些字符串的特定特征。如果当前元素已显示所需的字符,我需要访问此循环中的下一个元素。所以当前的开启对我来说只是一个指标,下一个是我需要掌握和处理的。有没有办法存储当前的并处理正确的下一个?
谢谢
您要么需要使用索引循环。
for(int i=0;i<strings.length-1;i++) {
String curr = strings[i];
String next = strings[i+1];
}
或者您需要将当前与上一个进行比较,而不是下一个。
String curr = null;
for(String next: strings) {
if (curr != null) {
// compare
}
curr = next;
}
你可以试试这样的
String valBefore=new String();
boolean flag=false;
for (String i:str){
if(i.equals("valueBeforeTheExpectedValue")){
valBefore=i;
flag=true;
continue;
} if (flag){
// Now you are getting expected value
// while valBefore has previous value
flag=false;
}
}
你可以这样尝试:
String myArray[]= { "this","is","the","value"};
......
int counter=0;
for(String x:myArray){
counter++;
if(x.equals("value")){
System.out.println(counter);
}
}
这将循环数组,如果满足条件,将打印相应的消息。在这种情况下,它将打印4
您可以使用continue;
跳过当前迭代并继续下一个迭代。将值保存在变量中以使用它。
您需要将 if 从 for-each-loop 更改为常规 for-loop。
String[] strings = new String[]{"aaa","bbb","ccc"};
for (int i = 0; i < strings.length; i++) {
if (strings[i].equals("aaa")) {
i++;
String anotherValue = strings[i];
}
}
不优雅,但可能适用于某些事情。向列表中添加额外元素:
List<String> stringsOnList= new ArrayList<String>(Arrays.asList(new String[]{ "1" , "2", "3" }));
String currentString = null;
stringsOnList.add(""); // add extra element for the extra loop
for(String nextString : stringsOnList){
if(currentString==null){
currentString=nextString;
continue;
}
//Do stuff e.g.: {
System.out.println("Current:"+currentString+", next: "+nextString);
// }
currentString=nextString; // current is next
}
输出:
Current:1, next: 2
Current:2, next: 3
Current:3, next:
根据您的需要,我在这里制作了一个示例代码...
public class One {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String stringArray[]={"Dinakar","DinaNath"};
for(String singleString:stringArray)
{
if(singleString.charAt(0)=='D')
{
// process with singleString here
System.out.print("Got it ");//my work done
break;
}
}
}
}
如果有任何问题再次与我联系,请玩得开心。