return input.charAt(0) + input.charAt(1) + input.charAt(len/2)+ input.charAt(len-2)+ input.charAt(len-1)
char
является типом int. Если вы сложите кучу символов, вы получите целое число, а не строку.
С другой стороны, если вы добавляете строку в символ или в другую строку, то они объединяются в другую строку:
return input.substring(0,2) + input.charAt(len/2) + input.substring(len-2);
Редактировать
Ваш метод в настоящее время возвращает только если input.length()>5
. Если длина равна 5 или меньше, ваш метод не знает, что он должен вернуть, поэтому код не будет компилироваться.
Если вы знаете, что ваш метод должен вернуть в этом случае, добавьте дополнительный return
после блока if
.
public static String extract(String input) {
int len = input.length();
if (len >= 5) {
return input.substring(0,2) + input.charAt(len/2) + input.substring(len-2);
}
return input; // must return something if the length was less than 5.
}
Кроме того, вы можете вызвать исключение, если ваша строка слишком короткая.