Dúvida em ordenação relatório IReport [RESOLVIDO]

Olá pessoal,
Tenho um relatório do cadastro de empresas, que possui um campo “ordenacao” do tipo String e que recebe do DTO o codigo da empresa, ex “123” ou a razao social “Empresa Teste”,de acordo com o que o usuario
seleciona o tipo de ordenação no filtro da aplicação. No relatório chega certo ou o codigo ou a razao social. Esse campo ordenacao eu adicionei no Sort Options, ate aih tudo bem.
Quando eh selecionado para ordenar por razao social ele faz certinho.
O problema é qdo é selecionado para ordenar por código, pois pelo fato de ser um campo String ele nao ordena corretamente.

Ex: o correto seria ordenar >>> cód 1,2,3,4…12,13,14
mas ele ordena 1,12,13,14,2,3,4…(ordenaçao de strings)
Tentei fazer uma condição para verificar se o campo ordenacao é numerico ou não, e se for transformar para um inteiro, mas nao deu certo,acusa erro.

Tentei o seguinte:

da mesma fora que em java faz-se:

        String teste = "123";
        
        if(teste.matches("^[0-9]*$")){
            System.out.println("eh numerico");
        }else{
            System.out.println("nao eh numerico");
        }

Alguém tem uma idéia ?

Resolvi da seguinte maneira

no lugar de passar apenas um campo do DTO do tipo string para o relatorio com codigo ou nome eu separei em dois campos
int codigo
String nomeEmpresa
e adicionei os dois campos no Sort Options do relatorio

Abraços