在Java中迭代字符串数组

Eri*_*onE 66 java arrays collections

我有一些带有一些组件的String数组,这个数组有5个组件,它有些不同.我想要做的是迭代该数组并获得第一个组件和该组件旁边的组件.所以我第一次得到组件编号1和组件编号2,第二次得到编号2和3,第三次得到编号3和4 ......依此类推,直到你到达最后一个组件.

我到底有多远:

String[] elements = { "a", "a","a","a" };

for( int i = 0; i <= elements.length - 1; i++)
{
    // get element number 0 and 1 and put it in a variable, 
    // and the next time get element      1 and 2 and put this in another variable. 
}
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

Mic*_*hal 163

您可以对数组元素的迭代执行增强的for循环(对于java 5和更高版本):

String[] elements = {"a", "a", "a", "a"};   
for (String s: elements) {           
    //Do your stuff here
    System.out.println(s); 
}
Run Code Online (Sandbox Code Playgroud)

  • 我可能失去了一些东西,但我不明白这个答案怎么有这么多的选票时,它并没有回答第q ...(除非你只读的主题). (3认同)
  • 你如何得到迭代数?或者我是否需要通过声明可变量和计数迭代来手动完成? (2认同)

Ste*_*all 36

String[] elements = { "a", "a", "a", "a" };

for( int i = 0; i < elements.length - 1; i++)
{
    String element = elements[i];
    String nextElement = elements[i+1];
}
Run Code Online (Sandbox Code Playgroud)

请注意,在这种情况下,elements.length是4,所以你想迭代[0,2]来获取元素0,1,1,22,3.


Boz*_*zho 5

String current = elements[i];
if (i != elements.length - 1) {
   String next = elements[i+1];
}
Run Code Online (Sandbox Code Playgroud)

这可以确保你没有获得ArrayIndexOutOfBoundsException最后一个元素(那里没有'下一个').另一种选择是迭代到i < elements.length - 1.这取决于您的要求.