Reescribir fecha en Java

public class Main {

/**
* @param args No se utiliza
*/
public static void main(String[] args) {

java.util.Scanner lee = new java.util.Scanner(System.in);

//Leemos la fecha de una sóla línea
String fechaIn = lee.nextLine();

//Eliminamos blancos iniciales y finales
fechaIn = fechaIn.trim();
//Buscamos el primer de
int de1 = fechaIn.indexOf('d');

//Seleccionamos la substring que representa el dia
String dia = fechaIn.substring(0, de1);

//Eliminamos blancos al final del año
dia = dia.trim();

//Seguimos procesando la fecha para obtener el mes
fechaIn = fechaIn.substring(de1+3);

fechaIn = fechaIn.trim();
//Buscamos el segundo de. Hay que buscar "de" por la colisión con diciembre
int de2 = fechaIn.indexOf("de");

//Seleccionamos la substring que representa el mes
String mes = fechaIn.substring(0, de2);

mes = mes.trim();

//Seguimos procesando la fecha para obtener el año
fechaIn = fechaIn.substring(de2+3);

fechaIn = fechaIn.trim();

//Seleccionamos la substring que representa el año
String agno = fechaIn;

//Imprimimos la fecha en el formato pedido
System.out.println(agno + "-" + mes + "-" + dia);

}

}