我在每个循环中使用a来访问字符串数组的每个元素并检查这些字符串的特定特征。如果当前的元素显示了所需的字符,我需要访问此循环中的下一个元素。因此,当前开启只是一个指示我,下一个是我需要抓住和处理的那个。有没有办法存储当前的那个并处理下一个?
感谢
答案 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再次联系我,请玩得开心。