Trocar espaço por virgula

Pessoal estou encontrando uma dificuldade ao se trabalhar com String. Alguém pode me da um Help?
O que eu preciso: Escrever o nome FULANDO BETANO CICLANO, e transforma-lo em CICLANO, B. C.

Montei minha tela da seguinte maneira:

[img]

[/img]

Ola

Não dá pra fazer com split e substring e depois vc monta a String.

Até

protected void do_btnConverter_actionPerformed(ActionEvent e) {
		// captura o nome digitado transforma tudo para Maiusculo e retira os epaço do inicio e do final
		labelNome.getText().toUpperCase().trim(); 
		
		String recebeNome = labelNome.getText(); 
		String vetorNome[] = recebeNome.split(" "); // Armazenando no vetor e separando os indices pelos espaços
		
		for( String token : vetorNome )
			textFieldSaida.setText(token);	
	}

Alguma dica?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package splitsubstring;

import javax.swing.JOptionPane;

/**
 *
 * @author renatovertuamneto
 */
public class SplitSubString {

    static String nome="";
    static String nova="";
    static int quantidade=0;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        nome = JOptionPane.showInputDialog("");        
        quantidade = nome.split(" ").length-1;
        System.out.println(quantidade);
        System.out.println(nome.split(" ").length);
        for (int i = 0; nome.split(" ").length > i; i++) {
            if (quantidade==nome.split(" ").length-1) {
                nova += nome.split(" ")[quantidade].toUpperCase()+", ";
            } else {
                nova += nome.split(" ")[quantidade].toUpperCase().substring(0, 1)+". ";
            }
            quantidade--;
            System.out.println(nova);
        }
    }
}
/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/  
package br.edu.fcsl.gui;  
  
import javax.swing.JOptionPane;  
  
/** 
* 
* @author renatovertuamneto 
*/  
public class SplitSubString {  
  
    static String nome="";  
    static String nova="";  
    static int quantidade=0;  
    /** 
     * @param args the command line arguments 
     */  
    public static void main(String[] args) {  
        nome = JOptionPane.showInputDialog("Digite seu nome aqui");          
        quantidade = nome.split(" ").length-1;  
       // System.out.println(quantidade);  
      //  System.out.println(nome.split(" ").length);  
        for (int i = 0; i < nome.split(" ").length; i++) {  // enquanto o i for menor incrementa
            if (quantidade==nome.split(" ").length-1) { // se amos forem 0  
                nova += nome.split(" ")[quantidade].toUpperCase()+", ";  
            } else {  
                nova += nome.split(" ")[quantidade].toUpperCase().substring(0, 1)+". ";  
            }  
            quantidade--;  
            System.out.println(nova);  
        }  
    }  
}

Primeira mente gostaria de agradecer pela atenção. Você foi muito prestativo, meu muito obrigado. Mas agora eu gostaria de debater um pouco com você para meu entendimento.
Eu mudei ele um pouquinho só para ficar mais fácil a minha leitura.
Então vamos la:
1º == Nome está recebendo a String digitada [ok]
2º == quantidade recebe o tamanho total da string, no caso ele retorna o tipo inteiro. o length-1; o (-1) e o um controle da JVM não e isso?
3º ao percorrer o for você compara ve se meu interprete está correto. Pseudocodigo: Se quantidade for igual a o tamanho do vetor string no caso passa tudo para Caixa Alta.
e onde você vai trocar a posição no caso do ultimo nome digitado e armazena em nova.
Aff.

Nem eu sei o que eu to falando mais. kkk
Poderia me dar uma explicação rápida no fica desse código. do if para baixo.

Opa, não sou muito bom em explicar então coloquei da seguinte forma:


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package splitsubstring;

import javax.swing.JOptionPane;

/**
 *
 * @author renatovertuamneto
 */
public class SplitSubString {
    static String nome="";
    static String nova="";
    static int quantidade=0;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        nome = JOptionPane.showInputDialog("");  
        /*
         * quantidade = Renato Vertuam Neto -> 3
         * 
         * depois do split
         * 
         * nome[0] = Renato
         * nome[1] = Vertuam
         * nome[2] = Neto
         * 
         * nome[quantidade] = java.lang.ArrayIndexOutOfBoundsException: 3
         * 
         * quantidade = Renato Vertuam Neto -> 3-1 logo = 2
         * 
         * nome[quantidade] = Neto
         * quantidade - 1 = 1
         * nome[quantidade] = Vertuam
         * quantidade - 1 = 0
         * nome[quantidade] = Renato
         * 
         */
        quantidade = nome.split(" ").length-1;
        System.out.println(quantidade);
        System.out.println(nome.split(" ").length);
        for (int i = 0; nome.split(" ").length > i; i++) {
            /* 
             * Se quantidade for igual ao ultimo indice da Array
             * pega a ultima parte do nome quebrado pelo Split
             * e adiciona a virgula
            */
            if (quantidade==nome.split(" ").length-1) {
                /*
                 * Recupera a ultima parte do nome que está na 
                 * ultima posição do vertor
                 */
                nova += nome.split(" ")[quantidade].toUpperCase()+", ";
                /*
                 * Senão pega a parte do nome corresponte ao indice
                 * de traz para frente
                 * 
                 */
            } else {
                /*
                 * Recupera a partes do nomes pelo indice correspondente 
                 * e adiciona o ponto
                 */
                nova += nome.split(" ")[quantidade].toUpperCase().substring(0, 1)+". ";
            }
            /*
             * Diminui um no contador
             */
            quantidade--;
            System.out.println(nova);
        }
    }
}

Se você fosse bom para explicar então poderia dar aula.
Entendi tirou a duvida da minha cabeça o -1 e por causa do ArrayIndexOutOfBoundsException, ou seja nunca que eu posso fazer um comparação x <= vetor[] porque se não ele vai estourar tem que ser menor, por cota do ultimo loop.

Obrigado Mano.

Fica com Deus.

Agora só falta +4 de tirar o folego. vou brincar aqui com eles. vamos ver o que vai dar. hahshshsa