Alinhar uma String no centro [Resolvido]

6 respostas
lina

Bom,
eu tenho esse código:

String		
a	=	"           lina@ferreira";

a	=	a.replace('@','\n');
		
System.out.println(Stood.StringAlign(a,38,Stood.ALIGN_CENTER));

Bom o resultado disso vai ser:

lina
ferreira
-----------

Notem que a palavra ferreira esta em baxu,
pois eu quebrei aonde encontrei a quebra de linha.

Porem eu estava querendo alinhar a palavra ferreira embaxu da lina
no centro..
e não sei como fazer isso...

O lance é assim: Tenho qualquer String, e identifico onde está o caracter
de quebra de linha (@), e quebro a linha nele... e preciso centralizar as 2 linhas no meiu.

Alguem tem uma ideia?

Tchauzin!

6 Respostas

ViniGodoy

Não tem como você fazer um split e depois dois println?

String a = "lina@ferreira"; String b[] = a.split("@"); for (String s : b) System.out.println(Stood.StringAlign(s,38,Stood.ALIGN_CENTER));

ViniGodoy

Você está exibindo a palavra no console mesmo, ou a versão oficial é um JLabel?

Se for num JLabel, acho que dá também pra fazer com HTML:

String a = "lina@ferreira"; String labelText = a.replaceAll("@", "<br>"); lblText.setText("<html><body><center>" + labelText + "</center></body></html>");

lina

Funcionou ViniGodoy …

Muito obrigada! =D

peerless

Eu fiz uma gambiarra aqui, mas que talvez lhe abra a mente pra futuras outras gambiarras.
Estou meio sem tempo, pode ser que nem seja o que você quer...
mas funciona...

public class lina {
    
    /** Creates a new instance of lina */
    public lina() {
    }
    
    //texto, simbolo, partida (1 inicio, -1 do fim)
    public String getTok(String texto, char simbolo, int partida) {
      boolean chegou = false;
      String aux = "";
      if (partida == 1) {
        int i = 0;
        while (!chegou && i <= texto.length()-1) {
          if (texto.charAt(i) != simbolo) 
            aux+=texto.charAt(i);  
          else
            chegou = true;
          i++;
        }
      }
      else if (partida == -1) {
        int i = texto.indexOf(simbolo+"")+1;
         while (!chegou && i <= texto.length()-1) {
          if (texto.charAt(i) != simbolo) 
            aux+=texto.charAt(i);  
          else
            chegou = true;
          i++;
        }
        
      }
      else return "Erro.";
      return aux;
    }
    public static void main(String lina[]) {
      lina l = new lina();
      String a = "lina@ferreira";
      String space = "            ";
      System.out.println(space+l.getTok(a,'@',1));
      System.out.println(space+l.getTok(a,'@',-1));

 		
    } 
    
}
lina

Passei a resposta pro java 4...
quem quiser:

//
// Declara a variavel.
//
String	
a			=	"      Lina uhull uhull@legal@bem mais legal@claro!@é [email removido]@desossei.gov";		
		
String 
b[]			=	a.split("@");		
				
for	(
		int
		ln			=	0
		;
		ln			<	b.length
		;
		ln++
	)
{
	System.out.println(VeSUtil.StringAlign(b[ln],38,Stood.ALIGN_CENTER));
}

Valeu a todos!!! agora que mais um ajudou!!

Tchauzin!

seufagner

Ao invés dos espaços utiliza o \t que corresponde à tabulação… tanto antes do “lina” como após o \n lá no seu replace…

Criado 12 de março de 2007
Ultima resposta 12 de mar. de 2007
Respostas 6
Participantes 4