Przeanalizuj to poniżej, kod przechodzi, bo go przetestowałem i uzupełniłem.
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine())
{
String line = sc.nextLine();
String[] tab = line.toString().split(" ");
for (int i=0;i<tab.length;i++)
{
String x = tab[i];
if(!x.isEmpty())
{
if(i == 0)
System.out.print(x);
else
System.out.print(x.substring(0, 1).toUpperCase() + x.substring(1));
}
}
System.out.println();
}
Jest szybszy, nie zawiera zbędnych for w for oczywiście pojawia się pytanie, testów i to co mówiłem, testy musza pokryć każdy przypadek. Program ma dzialac dla kazdego wpisanego ciagu
Czyli : ZDANIE = > ODPOWIEDŹ następnie zdanie => odpowiedź
bez końca. A dodatkowo JEŚLI ZDANIE ZACZYNA SIĘ Z MAŁEJ LITERY, to ma ona pozostać małą literą, natomiast tylko duże mają być te gdzie usuwałeś spacje i to jest klucz
Zdanie testowe
ZdanieTestowe
zdanieZkropka.
zdanieZkropka.
Napisałem program w Scali tez, gdyż akuratnie tym językiem się teraz zajmuje
def main(args: Array[String]): Unit = {
val sc = new Scanner(System.in)
while (sc.hasNextLine) {
val line = sc.nextLine
val tab = line.toString.split(" ")
for (i <- 0 until tab.length) {
val x = tab(i)
if (!x.isEmpty) if (i == 0) System.out.print(x)
else System.out.print(x.substring(0, 1).toUpperCase + x.substring(1))
}
System.out.println()
}
}