Как прервать второй цикл for после первой итерации , чтобы цикл опять начался с первого for?
Цель задачи:
Создать цикл for, который будет выводить на экран слова из переменной source. Максимальное значение int i не должно превышать длину words
Создать второй цикл for в середине первого, который будет выводить на экран последовательно символы каждого слова из массива words (максимальное значение int i не должно превышать длину letters).
Должно получиться:
Hello
H
e
l
l
o
world!
w
o
r
l
d
!
package ArrayTest;
public class ArrayTest {
public static void main (String [] args){
String source = "Hello World!";
String[] words = source.split(" ");
char arr[] = source.toCharArray();
for (int i = 0; i < 2; i++) {
System.out.println(words[i]);
for (int j = 0; j < 10; j++) {
System.out.println(arr[j]);
}
}
}
}
Мой результат:
Hello
H
e
l
l
o
W
o
r
l
World!
H
e
l
l
o
W
o
r
l
Process finished with exit code 0
Ответы (1 шт):
Автор решения: Alex Rudenko
→ Ссылка
В существующем решении вложенный цикл выводит символы из строки source, а не для текущего слова из массива words, игнорируя при этом реальную длину строки и теряя два последних символа.
Исправленный вариант:
String source = "Hello World!";
String[] words = source.split(" ");
for (int i = 0; i < words.length; i++) {
System.out.println(words[i]);
char[] letters = words[i].toCharArray();
for (int j = 0; j < letters.length; j++) {
System.out.println(letters[j]);
}
}
Также цикл for с индексами имеет смысл заменить на цикл for each:
String source = "Hello World!";
String[] words = source.split(" ");
for (String word : words) {
System.out.println(word);
for (char c : word.toCharArray()) {
System.out.println(c);
}
}