formatar uma string para um formato de moeda no relatório jasper

Eu tenho uma string com algum valor numérico.

Eu quero formatá-lo de uma forma em que centenas são separados por vírgulas e o número está tendo $ cifrão antes dele.

por exemplo. 12345 deve ser formatado para US $ 12.345,00

Eu tentei o código abaixo sem cifrão:

new java.text.DecimalFormat(#,##0.00).format.(myString)

e o abaixo com um cifrão:

new java.text.DecimalFormat($ #,##0.00).format.(myString)

No entanto, ambos estão dando erro.

Qual é o caminho certo para alcançar este formato?

Esta é uma parte do jasper report jrxml onde eu quero evitar "null" no relatório e, assim, inserir o código abaixo:

<textField isBlankWhenNull="false" isStretchWithOverflow="true">            
  <reportElement stretchType="RelativeToTallestObject" x="1350" y="0" width="150" height="30"/>             
      <textElement/>             
   <textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{myString}!=null?new java.text.DecimalFormat(#,##0.00).format.($F{myString}):"Unavailable"]]></textFieldExpression>        
</textField>

Onde myString resulta de uma consulta e é declarado em jrxml como:

 <field name="myString" class="java.lang.String"/>

MyString anterior foi declarado como BigDecimal, mas o operador de comparação? = Não estava funcionando.

Se o valor da moeda não estiver disponível, quero imprimir "indisponível" no relatório em vez do padrão "nulo". Senão, quero que o número seja formatado corretamente como descrito acima.

Como resolver esse problema?

Obrigado pela leitura.

questionAnswers(6)

yourAnswerToTheQuestion