Re:Substituir 3 métodos em 1

8 respostas
TiagoFoil

Vc pode fazer um método q chama os outros 3?

8 Respostas

rmarin

P@ul@, desculpe mas por que você quer um método que faça os 3?

Você precisa saber qual método quer executar, não?


Dica, se você precisa formatar um número com zeros a esquerda, utilize a classe DecimalFormat.

Exemplo de utilização:

public static void main(String[] args) throws IOException {
        int x = 345;
        DecimalFormat df = new DecimalFormat("000000");
        System.out.println(df.format(x)); // Imprime a String: 000345
    }

Blz? :thumbup:

danieldestro

Pra quê 1 método só?

cria 3: lpad, rpad e pad.

O próprio pad seria o genérico.

private static final int RIGHT = 0;
private static final int LEFT = 1;

public String lpad( String x, int len ) {
  return pad( x, len, LEFT, ' ' );
}

public String rpad( String x, int len ) {
  return pad( x, len, RIGHT, ' ' );
}

public String pad( String x, int len, int direction, char fillingChar ) {
  // faz o padding...
  // x = texto a ser feito o padding
  // len = tamanho
  // direction = LEFT ou RIGHT
  // fillingChar = caracter a preencher os espaços
}
danieldestro

Padding é completar a String com um caracter.
Geralmente os métodos para isso são chamados de LPAD (left), RPAD (right).

P11
Olá pessoal... Tenho três métodos que fazem praticamente a mesma coisa... Um método completa uma String com "" à esquerda.
public String formatString(String field, int fieldLen)
    {
        String ret = "";
        int auxLen = 0;

        if (field == null)
        {
            for (int i = auxLen; i < fieldLen; i++)
            {
                ret += " ";
            }
        }
        else
        {
            auxLen = field.length();

            if (auxLen < fieldLen)
            {
                for (int i = auxLen; i < fieldLen; i++)
                {
                    ret += " ";
                }

                ret += field;
            }
            else
            {
                for (int i = 0; i < fieldLen; i++)
                {
                    ret += field.substring(i, i + 1);
                }
            }
        }

        return ret;
    }
Outro método completa uma String com "" à direita.
public String formatField(String field, int fieldLen)
    {
        String ret = "";
        int auxLen = 0;

        if (field == null)
        {
            for (int i = auxLen; i < fieldLen; i++)
            {
                ret += " ";
            }
        }
        else
        {
            auxLen = field.length();

            if (auxLen < fieldLen)
            {
                ret += field;

                for (int i = auxLen; i < fieldLen; i++)
                {
                    ret += " ";
                }
            }
            else
            {
                for (int i = 0; i < fieldLen; i++)
                {
                    ret += field.substring(i, i + 1);
                }
            }
        }

        return ret;
    }
E o outro método completa um Number com "0" à esquerda.
public String formatNumber(String field, int fieldLen)
    {
        String ret = "";
        int auxLen = 0;

        if (field == null)
        {
            for (int i = auxLen; i < fieldLen; i++)
            {
                ret += "0";
            }
        }
        else
        {
            auxLen = field.length();

            if (auxLen < fieldLen)
            {
                for (int i = auxLen; i < fieldLen; i++)
                {
                    ret += "0";
                }

                ret += field;
            }
            else
            {
                for (int i = 0; i < fieldLen; i++)
                {
                    ret += field.substring(i, i + 1);
                }
            }
        }

        return ret;
    }
Preciso fazer isso em um único método. Alguém poderia me ajudar??
I

Pergunta!

Quando saber q é pra colocar “” a esquerda , “” a direita e 0 a esquerda!

me fala ae q te falo como fazer.

P11

Primeiramente estava pensando em criar constantes estáticas na classe indicando a configurção da formatação.

public static final int PREENCHIMENTO_ZEROS = 1;
public static final int SPACES_iN_LEFT = 2;
public static final int SPACES_iN_RIGHT = 3;
Pensei em algo do tipo:
public String Formato()
{
    String ret = "";
    int auxLen = 0;

    if (.....){ ..... } //nesse primeiro if, verificar o que é para colocar, se é "" à esquerda, "" à direita ou "0" à esquerda.
}
Como faço isso?? Ou melhor, seria +/- assim??
P11

Oi rmarin…
Preciso fazer esse método que faça os 3, pois são praticamente iguais… a única diferença é que um preenche com " " à esquerda, o outro com " " à direita e o outro com “0” à esquerda.
Não tem como fazer isso??

P11

Oxa…
Entendi metade do que você disse…
Não tem como explicar isso numa linguagem “Java para iniciantes”?
O que seria padding??

Criado 9 de agosto de 2006
Ultima resposta 9 de ago. de 2006
Respostas 8
Participantes 5