[RESOLVIDO]Emprego de método Trim()

Bom dia a todos!!! :smiley:

Pessoal,

estou desenvolvendo um sistema utilizando tecnologia oracle (mais especificamente ADF e Jdeveloper).

Estou com um probleminha na hora de gravar um string no meu banco de dados, ou seja, o usuário informa um nome em um campo e o mesmo não podera gravar com espaços, (tanto no começo, quanto no fim da string).

A solução de certa forma é simples. Utilização do método trim(). Mas infelizmente não está funcionando como deveria!

Abaixo segue parte de meu método com comentários sobre um alteração que eu fiz.

[code] private boolean confirmCreateCategoryActionsGeneric(String acao) {
DCBindingContainer bindingContainer =
(DCBindingContainer)getBindings();
DCIteratorBinding iteratorCategory =
bindingContainer.findIteratorBinding(“CategoryView1Iterator”);

    Row currentRow = iteratorCategory.getCurrentRow();
    String nameSource = "";
    if (currentRow.getAttribute("Name") != null) {

        //Abaixo segue minha logica para o tratamento da String.
        currentRow.setAttribute("Name", currentRow.getAttribute("Name").toString().trim());
        nameSource = currentRow.getAttribute("Name").toString();
        nameSource = prepareUrlString(nameSource, 0);
        nameSource = nameSource.toLowerCase();
    }[/code]

Agradeço desde já a ajuda de todos.

Abraço!

e o que acontece de errado ?

A coluna do banco de dados foi definida como VARCHAR ou CHAR? Se foi como CHAR, o banco completa com espaços à direita :frowning:

Respondendo:

digaoneves, quando um usuário preencher o campo nome no formulário e acabar colocando espaços a direita da String, os espaços estão sendo gravados junto com a string informada.

A coluna está como varchar2!!!

Obrigado pela atenção.

Você chegou a debugar para ver se o trim() realmente não está funcionando?

Sim Digão! E realmente não dá certo.

Que estranho :shock:

Fiz esse método agora, tenta com ele:

[code]private String trim(String str){
int inicioStr = -1;
int fimStr = -1;

    for(int i = 0; i < str.length(); i++){
        if(str.charAt(i) != ' '){
            if(inicioStr == -1)
                inicioStr = i;
            fimStr = i;
        }
    }
    
    return str.substring(inicioStr, fimStr + 1);

}[/code]

Adriel,

muito obrigado pela resposta. Vou sair para almoçar agora (também sou filho do homem rs.) e voltando vou realizar o teste com este método que você propôs.

Abraço…

ou

private String trim(String str){ return str.replaceAll("^[\\s]+|[\\s]+$", ""); }

Apesar de eu achar realmente muito estranho o próprio trim() da classe String não funcionar…

Pessoal, agradeço a ajuda de todos, mas a maneira que eu estava realizando estava de certa forma correto. Não sei o motivo de não estar realizando a operação, mas agora está funfando numa boa.

Obrigado pela atenção e ajuda de todos!!