Коллеги, помогите понять, пожалуйста, что не нравится валидатору - "Вывод программы должен соответствовать условию задачи". Очевидно, что задача простая, но никак не разберусь. На мой взгляд, программа отрабатывается корректно.
package com.javarush.task.task36.task3605;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.TreeSet;
/*
Использование TreeSet
*/
public class Solution {
static TreeSet<Character> set = new TreeSet<>();
public static void main(String[] args){
try{
fillSet(getChars(args[0]));
printSet();
} catch (IndexOutOfBoundsException e){
e.printStackTrace();
}
}
private static char[] getChars(String arg) {
return readFile(arg).toString().toLowerCase().toCharArray();
}
private static void fillSet(char[] chars) {
for (char tmp : chars) {
if (tmp > 96 && tmp < 123) {
set.add(tmp);
}
}
}
private static void printSet() {
Iterator<Character> iterator = set.iterator();
if(set.size() < 5) {
while (iterator.hasNext()) {
System.out.print(iterator.next());
}
} else {
for(int i = 0; i < 5; i++){
if(iterator.hasNext()){
System.out.print(iterator.next());
}
}
}
}
private static StringBuilder readFile(String path){
StringBuilder sb = new StringBuilder();
try(BufferedReader br = new BufferedReader(new FileReader(path))){
while(br.ready()){
sb.append(br.readLine());
}
} catch (IOException e) {
e.printStackTrace();
}
return sb;
}
}