Проблема заключается в длине str
значения str
для примера, т. Е. S = тарифы и k = 2 равны
[fa, ar, re, null, null]
, следовательно, исключение выбрасывания Arrays.sort Также вы можете найти максимальное и минимальное в одном и том же l oop, нет необходимости в отдельной сортировке
Я сделал код для того же
public static void main(String[] args) throws Exception {
System.out.println(getSmallestAndLargest("fares",2));
}
public static String getSmallestAndLargest(String s, int k) {
String substring = s.substring(0, k);
String smallest = substring;
String largest = "";
while(s.length()>=k) {
String temp = s.substring(0, k);
System.out.println(temp);
smallest = smallest.compareTo(temp)<0?smallest:temp;
largest = largest.compareTo(temp)>0?largest:temp;
s= s.substring(1,s.length());
}
System.out.println("***************** Result");
return smallest+"\n"+largest;
}
output
fa
ar
re
es
***************** Result
ar
re
с помощью K = 3
far
are
res
***************** Result
are
res