Hola Camilo, espero te encuentres bien.
Para solucionar el error que te tira cuando ingresas un espacio en la consola, utiliza un teclado.nextLine(), ya que.el problema radica en cómo Scanner maneja las entradas. Cuando utilizas teclado.nextLine(), lee la línea completa incluyendo los espacios, mientras que teclado.next() solo lee la siguiente entrada hasta un espacio, lo que puede causar problemas con la entrada.
Luego vas a tener un pequeño error seguramente de que no lo lee bien al ingreso de datos. Para solucionar eso vas a tener que escribir un teclado.nextLine() antes de guardarlo en tu variable.
Quedaria asi:
System.out.println("Escriba la descripcion de la compra: ");
teclado.nextLine();
String descripcionCompra = teclado.nextLine();
Esto lo que hace es limpiar el buffer.
Espero haber sido claro en mi explicacion y haberte brindado la solucion que necesitabas. Un abrazo