Inserir espaço entre dígitos inseridos pelo utilizador

boas

Estava experimentando desenvolver algo novo e surgiu-me uma dúvida, como faço para automaticamente inserir espaços entre dígitos inseridos pelo utilizador?

Ex:

Input: 2828 (mas eu queria que ao inserir ele metesse espaço logo, tipo ( 2 8 2 8 ).

Cumps

Primeiro crie uma função q faça isso:

private String insereEsp() {
        String espaco = jTextField1.getText() + " ";      
        return espaco;        
    }

e no evento KeyPressed do Jtexfield:

 private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {
        jTextField1.setText(insereEsp());
    }

:smiley:

Oi lyondor,

Nunca fiz isso,mas da uma olhadinha aqui http://www.guj.com.br/posts/list/118597.java

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() != 8) { jTextField1.setText(insereEsp()); }

Se vc quiser apagar ponha esse IF e vai funcionar direitinho! :smiley:

bah…não estou a conseguir, vou tentando,depois digo algo…

Um exemplo através deste código…

import java.util.Scanner();

public class Exemplo{
         public static void main (String [ ] args){
             
          int dados;
         
          Scanner teclado= new Scanner (System.in);
          System.out.print("Insira dados:");   // aqui deviam aparecer os dados logo com o espaço automático...
          dados=teclado.nextInt();
       
    }
}

Não estou mesmo a conseguir com os exemplos. :frowning:

Oi,

Lembrei desse exercicio,na verdade a palavra ficava separada por um traço,tirei ele e deu certo…Acho que vc pode aproveitar algo dele… :wink:


import javax.swing.*;
class Metodo6
{
	public static String estragaString()
	{
		String s="", s_aux="";
		int cont;
		do
		{
			s = JOptionPane.showInputDialog( null, "Digite um literal: " , 
												"Leitura do Literal" , JOptionPane.QUESTION_MESSAGE );
		} while ( s == null || s.equals("")); // nao poderá cancelar
		JOptionPane.showMessageDialog( null, "String original: " + s + "\nTamanho da string: " 
		                                + s.length() , "Resultado" , JOptionPane.INFORMATION_MESSAGE);
		                                
		// soletrando ...
		for (cont = 0; cont < s.length(); cont++ )
		{
			s_aux = s_aux + s.charAt(cont) + "   ";// aqui está o espaço...
		}
		
		// para retirar o último - do resultado soletrado:
		s_aux = s_aux.substring(0,s_aux.length()-2);
		JOptionPane.showMessageDialog( null, "Soletrando...: " + s_aux,"Resultado" , 
		                                                             JOptionPane.INFORMATION_MESSAGE);
		
		return s.toUpperCase(); // retorna a string lida para o metodo que chamou
	}
	public static void main(String args[])
	{
		
		String s;
		
		s = estragaString();
		JOptionPane.showMessageDialog( null, "String lida: " + s  , "Resultado" , 
																		JOptionPane.INFORMATION_MESSAGE);
	}
}

Cara valeu pelo exemplo, mas ainda não é bem o que quero. O que quero mesmo é espaço automático na variável por cada dígito e sem recorrer ao JOPTIONPANE. É um pouco estranho e e não estou mesmo a ver como possa fazer isto, mas vou continuando procurando :lol:

Oi lyondor ,

O JoptionPane é só mais uma forma de saida de dados,vc pode aplicar a mesma lógica onde vc quiser… :wink:

lyondor, não existe uma maneira fácil de fazer o que você quer (na verdade, em java puro, creio que nem sequer tenha como). O java tem um parco suporte ao console.
E mesmo em linguagens que tem um suporte um pouco melhor (como o C++), isso não seria tarefa trivial.

Exacto. Procurei por todo o lado e nada. Tarefa impossível da maneira que pretendo fazer. :roll: