如何访问Java中每个循环的下一个元素?

时间:2013-09-18 12:22:05

标签: java string foreach-loop-container

我在每个循环中使用a来访问字符串数组的每个元素并检查这些字符串的特定特征。如果当前的元素显示了所需的字符,我需要访问此循环中的下一个元素。因此,当前开启只是一个指示我,下一个是我需要抓住和处理的那个。有没有办法存储当前的那个并处理下一个?

感谢

7 个答案:

答案 0 :(得分:14)

您需要使用索引循环。

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;
}

答案 1 :(得分:3)

您可以尝试这样的事情

    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;
        }
    }

答案 2 :(得分:1)

您可以使用continue;跳过当前迭代并继续下一个迭代。将值保存在变量中以使用它。

答案 3 :(得分:1)

您可以尝试这样:

String myArray[]= { "this","is","the","value"};
......
int counter=0;
for(String x:myArray){
  counter++;
  if(x.equals("value")){
    System.out.println(counter);
  }
}

这将循环数组,如果满足条件,将打印相应的消息。在这种情况下,它将打印4

答案 4 :(得分:1)

您需要更改从for-each-loop到常规for循环。

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];
    }
}

答案 5 :(得分:1)

不优雅,但可能适用于某些事情。在列表中添加额外的元素:

    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: 

答案 6 :(得分:0)

根据您的需要,我在这里制作了示例代码......

` 公共课一{{/ p>

/**
 * @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;
        }

    }
}

}

` 如果有任何probs再次联系我,请玩得开心。