Здравствуйте, подскажите пожалуйста что делаю не так?
Подсмотрел решение, и не понимаю почему:
- for (int j = i + 1;
- if ((i != j) && (strings[i] != null)) {
Не могли подсказать почему именно так?
Но тем не менее все равно ошибка.
package com.javarush.task.pro.task05.task0508;
import java.util.Scanner;
/*
В этой задаче тебе нужно:
Считать 6 строк и заполнить ими массив strings.
Удалить повторяющиеся строки из массива strings, заменив их на null (null должны быть не строками "null").
Примеры.
Массив после чтения строк:
{"Hello", "Hello", "World", "Java", "Tasks", "World"}
Массив после удаления повторяющихся строк:
{null, null, null, "Java", "Tasks", null}
*/
public class Solution {
public static String[] strings;
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
strings = new String[6];
for (int i = 0; i < strings.length; i++) {
strings[i]= console.nextLine();}
for (int i = 0; i < strings.length; i++) {
for (int j = i + 1; j < strings.length; j++) {
if ((i != j) && (strings[i] != null)) {
if (strings[i].equals(strings[j])) {
strings[i] = null;
strings[j] = null;
}
}
}
}
for (int i = 0; i < strings.length; i++) {
System.out.print(strings[i] + ", ");
}
}
}
for (int j = i + 1;мы берем текущий элемент i в массиве и начинаем перебирать все последуюещие элементы, начиная прямо со следующего за ним, поэтому и i+1if ((i != j) && (strings[i] != null))в данном случае проверка (i != j) кажется лишней, т.к. j всегда на +1 больше i, ну а строку мы естественно должны проверить чтобы она была не null