Replicar caracter

7 respostas
L

Pessoal, no java tem algum comando para replicar uma caracter.

Estou montando um layout bancario e precisa inserir diversos
espaços em branco.

Tem algum comando que replica " " ou qalquer caracter

Por exemplo no clipper tem o space( ).

grato

7 Respostas

R

não sei se entendi bem o que você quer, vai dando append em um stringbuffer com os caracters que você precisa.

A

Cara, vc precisar ser mais específico… pra que vc quer fazer isso…?

Qual objetivo…?

Assim fica mais fácil de todos poderem ajudar…

t+

neohacker

imagino eu que seja para completar as informações num arquivo posicional…seria algo como o LPAD e RPAD do Oracle…ele precisa completar com spaços em branco…não me lembro agora, mas duvido q seja dificil fazer isso…vou pesquisar

:slight_smile:

L

É como o neohacker comentou

Exemplo.: no arquivo texto o 1 campo tem 15 caracter.

Vou preencher com “COBRANCA” -> 8 caracter
e o restante 7 caracter -> " " é em branco.

No clipper tem o comando space(7) que inseria os caracter.

Gostaria de saber se no java tbm tem isso, ou é necessatio criar um metodo ou uma classe se eu for usar muito.

Grato,

peerless

Bom,
fiz uma função aqui que pode lhe ajudar:

/**
 * @params  strN(caracter para replicar,número de vezes à replicar)
 * @result vetor de c com n posições
 */
    public String strN(char c,int n) {
      String aux = "";
      for (int i = 0;i < n;i++)
        aux+=c;
      return aux;
    }

Utilização:

System.out.println("Dez"+strN(' ',10)+"espaços");
      System.out.println("Cinco"+strN('_',5)+"Underlines");

abraços

A

Entendi o que o nosso amigo quer fazer… mas eu totalmente inutil… porque desse jeito vc jai estar gravando bytes “vazios” (espa;cos gastam espa;cos)… pra que ter um campo com 8 caracters validos e mais 7 "invalidos’ gastando bytes a toa… :?:

neohacker

Não é inútil, os arquivos bancários tem de ser desta forma, vc simplesmente deve faze-lo.

Outro exemplo:

public static String space(String text, int qtdChar) {
    while (text.length &lt= qtdChar) {
        text += " ";
    }
}

Problemas:
Aqui sempre será inserido " ", se vc precisar de 0 (campos numéricos) vc precisar alterar como o exemplo do peerless .
Vc deve checar antes se a String já não está maior do que o campo. Vc pode criar alguma exceção para isso.
Vantagens vc pode usar static. Assim vc somente vai passando as informações e concatenando-as no arquivo.

Exemplo:

ArquivoPosicional.space(nomeCedente, 20) + ArquivoPosicional.space(nomeSacado, 20);

Bem espero ter ajudado, espero que consiga resolver o problema (se ja é que não resolveu) e desculpa por ter demorado a responder

Criado 19 de abril de 2007
Ultima resposta 4 de mai. de 2007
Respostas 7
Participantes 5