3 métodos em 1

3 respostas
P

Oi pessoal...
Tenho 3 métodos e gostaria de substuir por apenas 1.
O primeiro método preenche uma String com " " à esquerda.
O segundo método preenche uma String com " " à direita.
O terceiro método preenhce um Number com "0" à esquerda.
Gostaria de transforma-lo em um único método.

Pensei em algo do tipo: - Criar constantes estáticas na classe indicando a configuraçã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;
Depois dentro do método Formatter (que é o método que terá os três outro métodos) eu faço o seguinte:
public String Formato()
{
     String ret = "";
     int auxLen = 0;
 
     if (.....)
     { ..... } //nesse primeiro if, verifica o tipo de preenchimento que quero fazer, se é PREENCHIMENTO_ZEROS, SPACES_IN_LEFT OU SPACES_IN_RIGHT.
}

Como faço isso??

3 Respostas

R

em que situação vc quer fazer oq???

vc tem 3 situações, como descreveu 3 metodos…

vc pode enviar um parametro no metodo, dizendo qual o tipo de formatação quer fazer…

ou, vc deve determinar quando quer colocar “0” ou " " na frente ou atras…

se a resposta não faz sentido, pode ser que não tenha entendido…

[]'s

F

Na lib

http://jakarta.apache.org/commons/lang/

Olha os metodos

StringUtils.rightPad
StringUtils.leftPad
P

Me disseram para eu usar o padding…
Mas gostaria de continuar com os métodos que eu tenho…

Método que preenche 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;
    }

Método que preenche 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;
    }

Método que preenche 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;
    }

Não tem como fazer um método genérico para esses três??

Criado 9 de agosto de 2006
Ultima resposta 9 de ago. de 2006
Respostas 3
Participantes 3