如何只打印出在 java 中有 5 个元素的数组的前 3 个元素?

How do I print out only the first 3 elements of an array that has 5 elements in java?

如何只打印出包含 10 个元素的数组的前 5 个元素?

我知道我可以做到:

String[] strArray = {"bacon", "chicken", "ham", "egg", "poop"};
System.out.println(strArray[0]);
System.out.println(strArray[1]);
System.out.println(strArray[2]);

但假设我有 100 个元素并想打印出前 25 个元素。或者想打印出第10到第50的所有元素。写完所有的代码行会很费时间。

有没有办法告诉控制台将 "from" 一个元素打印到另一个元素?有点像 10-50?所以喜欢走捷径。

打印前 25 个元素:

for (int i=0; i<25; i++) {
    System.out.println(strArray[i]);
}

打印元素编号 10 到 50:

for (int j=9; j<50; j++) {
    System.out.println(strArray[j]);
}

您可以使用 for 循环非常轻松地做到这一点

String[] strArray = {"bacon", "chicken", "ham", "egg", "poop"};
for (i = 0; i < 3; i ++){
    Ssytem.out.println(strArray[i]);
};

虽然这是非常基础的,但只是给出一个参考代码,这样你就可以编写一个像这样的通用方法,它从你需要打印的地方获取字符串数组和开始和结束索引,并检查你是否开始不小于 0 或结尾大于数组本身的大小..

    public void printElements(String[] strArray,int start , int end)
        {
        if(start > 0 && end <strArray.length)
           for (int i=start; i<end; i++) 
            {
            System.out.println(strArray[i]);
            }
        }

你可以用这样的函数来做到这一点:

public void print(String [] array, int range1, int range2){
     for(int i = range1, i < range2, i++)
          System.out.println(array[i]);
}

您可以为 range1 和 range2 值添加一些 if 控件。例如,这些值不能小于零或大于 array.length

因为 Java 8

您可以使用 Stream class 中的 limit:

Stream.of(strArray).limit(3).forEach(System.out::println);

Arrays.stream(strArray).limit(3).forEach(System.out::println); 

打印数组元素非常简单。让我们以一个函数printElemnts()来演示如何打印数组的元素。

public void printElements(String [] array, int startingIndex, int lastIndex) {
    for (int i = startingIndex; i < lastIndex; i++)
        System.out.println(array[i]);
}

在您的情况下,您可以将 startingIndex 设置为零,将 lastIndex 设置为某个值。