Предположим, у меня есть массив String args[]
с определенным количеством элементов.
Допустим, до args[100]
. Я хочу напечатать все элементы args[]
выше args[5]
.
Я не хочу делать System.out.println(args[6] + args[7] + args[8] + args[9] + args[10]);
и т. Д. И т. Д.
Мне было интересно, есть ли более чистый и эффективный способ распечатать все эти элементы массива.
Благодарю.
4 ответа
Вы можете использовать простой for-loop
:
for(int i = 6; i < args.length; i++) System.out.print(args[i]);
Вам нужна петля.
В вашем случае, предполагая современный JDK, я бы использовал поток и лямбды:
Arrays.stream(arr)
.skip(5)
.forEach(System.out::println);
Цикл for, вероятно, самый распространенный, конечно, в старых кодовых базах без лямбд и потоковой передачи:
for(int i = 5; i< arr.length; i++) {
System.out.println(arr[i]);
}
Вы можете сделать это со всеми типами циклов, просто подумайте о том, чтобы инициализировать вашу текущую переменную значением, с которого вы хотите начать.
while-loop
// Initialize i with the value you want to start
int i = 6;
while(i<args.length){
System.out.print(args[i]);
i++;
}
do-while
int i = 5;
do{
i++;
System.out.print(args[i]);
}while(i < args.length)
for-loop
for(int i = 6;i < args.length; i++){
System.out.print(args[i])
}
Вы можете использовать IntStream#range
, как показано ниже:
IntStream.range(5, arr.length).forEach(i -> System.out.print(arr[i]));
<Сильные> Демо:
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
String arr[] = { "a", "b", "c", "d", "e", "f", "g" };
IntStream.range(2, arr.length).forEach(i -> System.out.print(arr[i]));
}
}
Вывод:
cdefg
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].