Puoi fare un controllo in questo modo: ho supposto che l'utente possa inserire sia la notazione europea che quella USA, ipotizzando che cmq siano presenti le cifre decimali (puoi modificare tu il controllo)
codice:
try {
String value = "12,345.21"; //il valore inserito
if(value.lastIndexOf(",")==value.length()-3){ //notazione europea
value = NumberFormat.getNumberInstance(Locale.ITALIAN).parse(value).toString();
}else{ //notazione USA
value = NumberFormat.getNumberInstance(Locale.US).parse(value).toString();
}
//value può ora essere passato come argomento del BigDecimal;
System.out.println(value);
} catch (ParseException ex) {
ex.printStackTrace();
}