Так не работает. Пишет не учитываю количество пробелов, попробовал так но все равно не решается. Подскажите как считать пробелы.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String string = reader.readLine();
        ArrayList<String> lists = new ArrayList<String>();
        ArrayList<String> newlist = new ArrayList<String>();

        for (String retval : string.split(" ")) {

            lists.add(retval);
        }

        for (int i = 0; i < lists.size(); i++) {
            int len  = lists.get(i).length();
            if (!(lists.get(i).equals(" "))){
                 String str = lists.get(i).substring(0,1).toUpperCase()+lists.get(i).substring(1,len);
                newlist.add(str);
            } else  {
                 newlist.add(lists.get(i));

            }


        }

        for (int i = 0; i < newlist.size(); i++) {
           System.out.print(newlist.get(i));

        }

    }

}