O try, nesse caso, é um recurso chamado try-with-resources, usado para para tratar recursos, nesse caso, o Scanner.
Quando um Scanner é criado, ele precisa ter o método close chamado ao final de sua execução. Assim:
Scanner ler = new Scanner(System.in);
// faz algo
ler.close();
Com o try, não precisa chamar o close no código, ele já faz isso para vc implicitamente. Só usei o try no exemplo por hábito mesmo (já faço isso de forma automática), nem era necessário para o seu caso.
Agora para resolver a questão de limitar a leitura à apenas 4 caracteres, quem resolveu isso foi o método substring. Com ele, eu pego um texto e digo qual o range de caracteres que eu quero recuperar desse texto. Ex.:
System.out.println("abcd".substring(0, 1)); // a
System.out.println("abcd".substring(0, 2)); // ab
System.out.println("abcd".substring(0, 3)); // abc