Marquei a resposta "Não compila", pois no meu entendimento a String s1 tem apenas 2 caracteres, logo apenas os índices 0 e 1, mas logo abaixo o código tenta fazer s1.substring(0,2), apontando para um índice que não existe. Nesse caso, não lançaria uma StringIndexOutOfBoundsException? Ou to falando besteira??