Abreviar nomes - String

Pessoal, estou tentando criar o seguinte programa, mas estou bem perdida e gostaria de ajuda.

Faça um programa que receba um nome completo na forma de uma String e
mostre a abreviatura deste nome. Não se devem abreviar as palavras com 2 ou
menos letras. A abreviatura deve vir separada por pontos. Ex.: Paulo Jose de
Almeida Prado. Abreviatura: P. J. de A. P.

Só consigo abreviar o primeiro nome. Já tentei quebrar o nome com um split mas não deu resultado nenhum. Também acredito que é necessário colocar uma condição para que os nomes com duas ou três letras (da, de, dos) não sejam abreviados, mas não sei por onde começar.

import java.util.Scanner;

public class StringAbrev {

public static void main(String[] args){

	Scanner input = new Scanner(System.in);

	System.out.print("Digite o nome completo: ");
	String nomeCompleto = input.next();

	String nomePedacos[] = nomeCompleto.split(" ");
	for (String letra : nomePedacos){

		System.out.print(letra.substring(0, 1) + ".");	

	}

}

}

Opa, o problema está nesta parte:

String nomeCompleto = input.next();

o next() tem um comportamento diferente do que você precisa, ele faz a leitura até um delimitador. Use o input.nextLine() para pegar a linha inteira digitada

Muito obrigada, @Danielzilli!