java - 如何检测一个元素是否是数组中的最后一个元素?

标签 java arrays loops arraylist foreach

下面的代码根据字符串的位置拆分字符串,然后将其放入 ArrayList 中。

例如,如果字符串是 "Who Framed Roger Rabbit?" ,然后fragmentMessage将每隔 8 个字符分割消息。

所以 ArrayList 将如下所示:[Who Fram, ed Roger, Rabbit?]

ArrayList的元素如下:

  1. ArrayList 元素 0:Who Fram
  2. ArrayList 元素 1:ed Roger
  3. ArrayList 元素 2:Rabbit?

然后,我在 main 方法中有一个 for-each 循环,该循环遍历 ArrayList。

迭代时如何检测是否已到达数组的最后一个元素?

例如,“如果这是数组的最后一个元素,则打印“LAST ELEMENT”。

import java.util.ArrayList;
import java.util.List;

public class LastElement {

public static void main(String[] args) {

    String message = "Who Framed Roger Rabbit?";
    for (String fragment : fragmentMessage(message)) {
        /*
         * If "fragment" is the last element of the array, then do something
         */
    }
}

private static List<String> fragmentMessage(String message) {
    List<String> fragmentedMessage = new ArrayList<>();

    for (int i = 0; i < message.length(); i = i + 8) {
        fragmentedMessage.add(message.substring(i, i + 8));
        System.out.println(fragmentedMessage);
    }

    return fragmentedMessage;
}
}

最佳答案

没有直接的方法可以知道 foreach 循环中是否有 List 的最后一个条目。

最简单的方法是使用索引循环。

类似的事情:

    List<String> fragmentMessage = fragmentMessage(message);
    for (int i = 0; i < fragmentMessage.size(); i++) {
        String fragment = fragmentMessage.get(i);
        /*
         * If "fragment" is the last element of the array, then do something
         */
        if (i == fragmentMessage.size()-1) {

        }
    }

另一个选择是迭代器

    for (Iterator<String> iterator = fragmentMessage(message).iterator();
        iterator.hasNext();) {
        String fragment = iterator.next();
        if (!iterator.hasNext()) {

        }
    }

关于java - 如何检测一个元素是否是数组中的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146147/

相关文章:

Java程序查找字符串中最大的ascii字符

java - 如何用Java洗牌?

java - OSGI - 缺少导入的包=org.apache.commons.collections

Javascript(ExtJS)遍历对象数组,查找重复项并汇总为新对象

java - 如何使用另一个类中的字符串数组?

php - [1]+[2] != [1,2](数组联合运算符在非关联数组上的行为)

python - 当我猜不透时,我试图重玩游戏(当我猜不透或找到正确答案时,再玩一次)

java - 行高 css 属性在 JEditorPane 中不起作用。谁能帮忙?

c++ - 为什么打印这个字符值会产生一个数字?

php - 我如何获取数据库中字段名(名称)中的所有数据并将其存储在变量数组中?在 PHP 和 MYSQL 中