Я работаю над методом, который возвращает строку и принимает два строковых параметра. Один из этих строковых параметров будет предложением, а другой - словом, которое мне нужно во всех заглавных буквах в предложении другого параметра.
Мои инструкции читаются следующим образом:
Метод capitalizeMatches, который принимает два параметра: стог сена типа String и иглу типа String.
Возвращает строку, в которой большинствовхождения иглы в стоге сена заменяются заглавной версией иглы.
Например, capitalizeMatches («Дюйм за дюймом, жизнь - это подпруга. Двор за двором, жизнь трудна.», «Двор»)→ Дюйм за дюймом, жизнь становится проще. YARD by YARD, жизнь трудна.
Замените вхождения иглы, которые являются полностью строчными (ярд), и тех, чья первая буква только с большой буквы (ярд).
Разрешить игле появляться внутридругими словами (shipYARD).
В любом случае, где то, что я имею до сих пор. Ниже я объясняю свою проблему / ошибку. Помоги мне.
public static String capitalizeMatches(String haystack, String needle)
{
String update = "";
needle = needle.toUpperCase();
String words[] = haystack.split(" ");
for(int i = 0; i < words.length(); i++)
{
String word = words[i]; //Exception takes place somewhere here...
if(word.equalsIgnoreCase(needle))
{
word = word.toUpperCase();
}
update += word;
update += " ";
}
return update;
}
Если мы можем, я хотел бы держаться подальше от массивов, но если это единственное решение этой проблемы, я возьму его.
Я получаю вывод, гдетолько он остается капиталом один раз. Мне нужно, чтобы он всегда был капиталом.
вывод: Дюйм за дюймом, жизнь не за горами. Двор за двором, жизнь тяжелая.
должно быть: Дюйм за дюймом, жизнь - это просто. Двор за двором, жизнь трудна.