当语言环境设置为法语时,BlackBerry的货币格式设置

当语言环境设置为法语时,BlackBerry的货币格式设置,blackberry,blackberry-jde,Blackberry,Blackberry Jde,我正在编写一个需要法语支持的应用程序。当区域设置设置为FR时,我无法正确设置货币格式。是否有任何方法可以正确执行此操作?我必须自己执行此操作。 创建了一个“Formatter”类,使用以下方法扩展Formatter 现在不知道在法国是怎样的,但在阿根廷,我们使用以下格式10.000.000,18作为例子。 希望有帮助,或者有人提供更好的解决方案 public static String addCommas(String s) { int extraRound = 0; b

我正在编写一个需要法语支持的应用程序。当区域设置设置为FR时,我无法正确设置货币格式。是否有任何方法可以正确执行此操作?

我必须自己执行此操作。 创建了一个“Formatter”类,使用以下方法扩展Formatter 现在不知道在法国是怎样的,但在阿根廷,我们使用以下格式10.000.000,18作为例子。 希望有帮助,或者有人提供更好的解决方案

    public static String addCommas(String s) {
    int extraRound = 0;
    boolean negative = false;
    int c;
    if(s.charAt(0) == '-') {
        negative = true;
        s = s.substring(1);
    }
    int len = s.indexOf('.')==-1?s.length():s.indexOf('.');
    if(len > extraRound + 3) {
        c = len - extraRound  - 3;
        s = s.substring(0, c) + "," + s.substring(c);
    }

    if(len > extraRound + 6) {
        c = len - extraRound  - 6;
        s = s.substring(0, c) + "," + s.substring(c);
    }

    if(len > extraRound + 9) {
        c = len - extraRound  - 9;
        s = s.substring(0, c) + "," + s.substring(c);
    }

    if(len > extraRound + 12) {
        c = len - extraRound  - 12;
        s = s.substring(0, c) + "," + s.substring(c);
    }

    if(negative) {
        s = '-' + s;
    }
    return s;
}

public static String addCommasNew(String s) {
    int extraRound = 0;
    boolean negative = false;
    int c;
    if(s.charAt(0) == '-') {
        negative = true;
        s = s.substring(1);
    }
    int len = s.indexOf(',')==-1?s.length():s.indexOf(',');
    if(len > extraRound + 3) {
        c = len - extraRound  - 3;
        s = s.substring(0, c) + "." + s.substring(c);
    }

    if(len > extraRound + 6) {
        c = len - extraRound  - 6;
        s = s.substring(0, c) + "." + s.substring(c);
    }

    if(len > extraRound + 9) {
        c = len - extraRound  - 9;
        s = s.substring(0, c) + "." + s.substring(c);
    }

    if(len > extraRound + 12) {
        c = len - extraRound  - 12;
        s = s.substring(0, c) + "." + s.substring(c);
    }

    if(negative) {
        s = '-' + s;
    }
    return s;
}

public static String removeScientific(String s) {
    int eIndex = s.indexOf('E');
    int initialPos = s.indexOf('.');
    String result = s;

    if (eIndex != -1){
        int base = Integer.parseInt(s.substring(eIndex+1));
        String pre = s.substring(0, initialPos);
        String pos = s.substring(initialPos+1, eIndex);
        String pos1 = ""; 
        if (base < pos.length()){
            String pos1a = pos.substring(0, base);
            String pos1b = pos.substring(base, pos.length());
            pos1 = pos1a + "." + pos1b; 
        } else {
            pos1 = pos.substring(0, pos.length());
            for (int i = 0; i < base-pos.length(); i++){
                pos1 = pos1 + "0";
            }
        } 
        result = pre + pos1;
    } 

    return result;
}

public static String changePointToComma(String s){
    int initialPos = s.indexOf('.');
    String result = s;
    if (initialPos != -1){
        result = s.substring(0, initialPos) + "," + s.substring(initialPos + 1, s.length());
    }

    return result;
}

public static String changeCommaToPoint(String s){
    int initialPos = s.indexOf(',');
    String result = s;
    if (initialPos != -1){
        result = s.substring(0, initialPos) + "." + s.substring(initialPos + 1, s.length());
    }

    return result;
}

public static String removeNumberFormat(String s){
    int initialPos = s.indexOf('.');
    String result = s;
    if (initialPos != -1){
        result = s.substring(0, initialPos) + s.substring(initialPos + 1, s.length());
        result = Formatter.removeNumberFormat(result);
    } else {
        return result = Formatter.changeCommaToPoint(s);
    }

    return result;
}

public static String roundDouble(String s, int presicion){
    int initialPos = s.indexOf('.');
    String result = s;
    String pre;
    String pos;

    if (initialPos != -1){
        pre = s.substring(0, initialPos);
        pos = s.substring(initialPos + 1, s.length());
        if (presicion < pos.length()){
            pos = s.substring(initialPos + 1, initialPos + 1 + presicion );
            int dec = Integer.parseInt(pos);
            int next = Integer.parseInt(s.substring(initialPos + 1 + presicion, initialPos + 2 + presicion )); //to round the las digit
            if (next > 4){
                dec = dec + 1;
                pos = dec + "";
                if ((dec+"").length() > presicion){
                    pre = (Integer.parseInt(pre) + 1) + "";
                    pos = "0";
                }
            }
        } else {
        }

        result = pre + "." + pos; 
    }

    return result;
}
公共静态字符串addCommas(字符串s){
int extralround=0;
布尔负=假;
INTC;
如果(s.charAt(0)='-'){
负=真;
s=s。子串(1);
}
int len=s.indexOf('.')==-1?s.length():s.indexOf('.');
如果(透镜>外圆+3){
c=透镜-外圆-3;
s=s.子串(0,c)+“,”+s.子串(c);
}
如果(透镜>外圆+6){
c=len-外圆-6;
s=s.子串(0,c)+“,”+s.子串(c);
}
如果(透镜>外圆+9){
c=透镜-外圆-9;
s=s.子串(0,c)+“,”+s.子串(c);
}
如果(透镜>外圆+12){
c=len-外圆-12;
s=s.子串(0,c)+“,”+s.子串(c);
}
如果(否定){
s='-'+s;
}
返回s;
}
公共静态字符串addCommasNew(字符串s){
int extralround=0;
布尔负=假;
INTC;
如果(s.charAt(0)='-'){
负=真;
s=s。子串(1);
}
int len=s.indexOf(',')==-1?s.length():s.indexOf(',');
如果(透镜>外圆+3){
c=透镜-外圆-3;
s=s.子串(0,c)+“+s.子串(c);
}
如果(透镜>外圆+6){
c=len-外圆-6;
s=s.子串(0,c)+“+s.子串(c);
}
如果(透镜>外圆+9){
c=透镜-外圆-9;
s=s.子串(0,c)+“+s.子串(c);
}
如果(透镜>外圆+12){
c=len-外圆-12;
s=s.子串(0,c)+“+s.子串(c);
}
如果(否定){
s='-'+s;
}
返回s;
}
公共静态字符串removeScientific(字符串s){
int eIndex=s.indexOf('E');
int initialPos=s.indexOf('.');
字符串结果=s;
如果(eIndex!=-1){
intbase=Integer.parseInt(s.substring(eIndex+1));
字符串pre=s.substring(0,initialPos);
字符串pos=s.子字符串(initialPos+1,eIndex);
字符串pos1=“”;
如果(底座<位置长度()){
字符串pos1a=位置子字符串(0,基);
字符串pos1b=位置子字符串(基,位置长度());
pos1=pos1a+“+pos1b;
}否则{
pos1=pos.substring(0,pos.length());
对于(int i=0;i4){
dec=dec+1;
pos=dec+“”;
如果((dec+).length()>presicion){
pre=(Integer.parseInt(pre)+1)+';
pos=“0”;
}
}
}否则{
}
结果=前+“+”位;
}
返回结果;
}