2013-12-05 2 views
0

Я хотел проверить, если итерация я выполнял был в его окончательном исполнении:итерации обнаружения прогресса Java

for(String t: token) 

Как я могу добиться этого в следующем случае? Здесь токен String[] массив

+0

да токен - это строка. –

+0

'token' должен быть' String [] ' –

+0

@Ruchira проверить edit –

ответ

1

Это будет работать для вас

int counter=0; 
    for(String t: token){ 
     counter++; 
     if(counter==token.length-1)){ 

     } 

    } 

Но если вам нужно сосредоточены на индексах можно использовать только for-loop

for(int i=0;i<token.length;i++){ 
     if(i==token.length-1){ 

     } 
    } 
1

С быстрым перечислением вы не можете получить индекс итерации.

Однако вы всегда можете использовать счетчик, который увеличивает в пределах вашего цикла быстрого перечисления, и действовать, когда его значение равно Collection или размеру массива минус 1.

Вот пример.

List<String> test = new ArrayList<String>(); 
// TODO populate 
// outside counter 
int counter = 0; 
for (String s: test) { 
    // TODO something 
    // checking counter vs collection size: last element 
    if (counter == test.size() - 1) { 
     // TODO something 
    } 
    counter++; 
} 

Однако стандартный for цикл будет наиболее рекомендуется вместо:

for (int i = 0; i < test.size(); i++) { 
    // checking counter vs collection size: last element 
    if (i == test.size() - 1) { 
     // TODO something 
    } 
} 
2

Вы можете сделать это следующим образом:

 int counter = 0; 
     for(String t: token) { 
      counter++; 
      if(counter==token.length-1) { 
       //final iteration 
      } 
     } 
1

Если Iterable вы можете ходить итератор самостоятельно:

List<String> token = Arrays.asList("First","Next","Last"); 
// Old way 
for (String t : token) { 
    System.out.println(t); 
} 
// Using iterator. 
for (Iterator<String> i = token.iterator(); i.hasNext();) { 
    String s = i.next(); 
    System.out.println((i.hasNext()?"":"*")+s); 
} 

или вы могли бы пройти один шаг позади:

// One step behind. 
String s = null; 
for (String t : token) { 
    if (s != null) { 
    System.out.println(s); 
    } 
    s = t; 
} 
if (s != null) { 
    System.out.println("*"+s); 
} 
1

Вы не можете использовать пока?

int i = 0; 
while(i < token.length) 
{ 
    //check for last element 
    if(i==token.length-1){ 

     } 
} 
0

Просто предоставление другого способа сделать это с использованием равных.

for(String t: token) { 
    if(t.equals(token[token.length-1])) { 
    // Do stuff 
    } 
} 
Смежные вопросы