Formato de una cadena a un formato de moneda en el informe jasper

Tengo una cadena con algún valor numérico.

Quiero formatearlo de manera que cientos de personas estén separadas por comas y el número tenga un signo de dólar antes.

p.ej. 12345 debe tener el formato de $ 12,345.00

Probé el siguiente código sin signo de dólar:

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

y el de abajo con signo de dólar:

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

Sin embargo, ambos están dando error.

¿Cuál es la forma correcta de lograr este formato?

Esta es una parte del informe jasper jrxml donde quiero evitar "null" en el informe y, por lo tanto, insertar el siguiente código:

<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>

Donde myString resulta de una consulta y se declara en jrxml como:

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

Anteriormente myString se declaró como BigDecimal, pero el operador de comparación? = No estaba funcionando.

Si el valor de la moneda no está disponible, quiero imprimir "no disponible" en el informe en lugar de "nulo" predeterminado. De lo contrario, quiero que el número esté correctamente formateado como se describe anteriormente.

Cómo resolver este problema?

Gracias por leer.

Respuestas a la pregunta(6)

Su respuesta a la pregunta