Реверс null
является null
, так что это легко:
if(s == null) return null;
Поскольку ваш метод имеет потенциал, чтобы вернуть null
, то, я бы также сделать некоторые нулевую проверку перед ссылкой на значение в вашей return
и пытается добавить к нему. так что-то вроде ...
String reversed = reverse(s.substring(n+1));
if(reversed != null) return reverse + " " + s.substring(0,n);
else return s;
Все остальное выглядит хорошо. Вам не нужны никакие другие базовые случаи. Конечно, это будет отменять предложение точно как есть, включая знаки препинания и информацию о случаях. Если вы хотите делать такие вещи, потребуется более интенсивная обработка.
Для обеспечения соответствующих прописной и строчной структуры, я бы, вероятно, сделать что-то подобное в вашем обычном базовом случае:
if(n == -1) {
s = s.toLowerCase();
String firstLetter = new String(s.charAt(0));
s = s.replaceFirst(firstLetter, firstLetter.toUpperCase());
return s;
}
пунктуация становится немного более сложным, особенно если у вас есть больше, чем просто конечный период, восклицательный знак или знак вопроса.
indexOf не является статическим. – Juvanis
thnx ... исправлено! – ueg1990
Вам нужно будет обрабатывать несколько пробелов или вкладок между словами, и каковы ваши правила для пунктуации среднего предложения и конца предложения? –