package com.javarush.task.pro.task05.task0508;
import java.util.Arrays;
import java.util.Scanner;
/*
Удаляем одинаковые строки
*/
public class Solution {
public static String[] strings;
public static void main(String[] args) {
Scanner readin = new Scanner(System.in);
strings = new String[10];
for (int i=0; i<10; i++) {
strings[i]=readin.nextLine();
}
String[] stringsTemp=new String[10];
stringsTemp=strings;
for (int i=0; i<10; i++) {
for (int qi=i+1; qi<10; qi++) {
if (strings[i].equalsIgnoreCase(strings[qi])) {
stringsTemp[i]=null;
stringsTemp[qi]=null;
break;
}
}
}
strings = stringsTemp;//напишите тут ваш код
Arrays.stream(strings).forEach(System.out::println);
}
}
Ligget Winston
22 уровень
почему так не хочет работать??
Архивный
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
KIRA Разработчик в prosv.ru Expert
30 января 2021, 17:07решение
Потому что получите NPE
+2
KIRA Разработчик в prosv.ru Expert
30 января 2021, 17:10
Допустим в 0 и в 1 индексе у вас одинаковые значения
Пример массива строк:
текст 1, текст 1, текст 2, текст 3 и тд
i = 0
if (strings[0].equalsIgnoreCase(strings[1]))
выполнилось условие и 0 и 1 индексы заменили на null, вышли из цикла break
Массив после замены на нул:
null, null, текст 2, текст 3 и тд
Увеличили переменную i++
при следующей проверки
strings[1].equalsIgnoreCase(strings[2]) NPE
0
Ligget Winston Черт в Побери
30 января 2021, 19:33
спасибо
0