Преобразование строковых чисел в разделенные запятыми строковые числа в Android - PullRequest
0 голосов
/ 09 января 2012

В настоящее время я работаю над проектом Android, в котором мы используем строковые числа со многими цифрами.

Итак, я хочу знать, есть ли способ преобразовать строковые числа , например, 1000000000 в запятые строковые числа , например, (1,00,00,00,000формате индийской локали .

Я получил формат локали США строковое преобразование, но мне нужен формат индийской локали .

Ответы [ 4 ]

1 голос
/ 09 января 2012

Я бы использовал format("% ,d", number) метод класса Format, гарантируя, что я инициализирую объект Formatter с соответствующим языковым стандартом (который я считаю en_IN для индийского языка).

Сказав это, людям было бы легче помочь вам, если бы вы опубликовали код о том, как вы делаете это для локали США.

1 голос
/ 09 января 2012

Ссылка: Форматирование числа с использованием пользовательского формата

private String getFormatedData(String unformatedData) {
        if(unformatedData != null) {
            try {   
                //unformatedData.replaceAll(",", "");
                Double result = Double.valueOf(unformatedData);             
                DecimalFormat myFormatter = new DecimalFormat("###,##0.00");
                            //DecimalFormat myFormatter = new DecimalFormat("#,###,###");
                            //If you don't want to show .00 format 
                return myFormatter.format(result);
            } catch (NumberFormatException e) {
                return unformatedData;
            }

        } else {
            return "0.00";
        }       
    }

Используйте этот метод.

Я думаю, вам нужно изменить этот метод, если вам не нужно значение .00.Позвольте мне поработать над этим.

0 голосов
/ 09 мая 2014

Ответ, данный Панкаджем Кумаром, дает вывод в американском формате, а не в индийском. Если вы хотите в формате США, это легко сделать с помощью следующего кода:

NumberFormat.getNumberInstance(Locale.US).format(35634646)

Как показано здесь: Преобразование целого числа в строку с запятой для тысяч

Чтобы получить строку с запятыми в индийском формате, вы можете попробовать этот код руководства

public  String round(String d)
{


    ArrayList<Integer> commas=new ArrayList<Integer>();
    String output=null;
    char[] preDecimal=d.split("[.]")[0].toCharArray();
    int i=preDecimal.length-3;
    System.out.println(i);
    while(i>0)
    {
        commas.add(i);
        i-=2;
    }

    StringBuilder sb=new StringBuilder();
    for(i=0;i<preDecimal.length;i++)
    {
        sb.append(preDecimal[i]);
        if(commas.contains(i+1))
            sb.append(",");



    }

       output=sb.toString();

    return output;

}
0 голосов
/ 09 января 2012

Я думаю, что вам нужно использовать NumberFormat , чтобы вы могли сделать общий случай, используя текущие настройки языка пользователя.

И я думаю, что это ваша текущая ситуация:

Если вы форматируете несколько чисел, более эффективно получить формат и использовать его несколько раз, чтобы системе не приходилось многократно извлекать информацию о соглашениях о местном языке и стране.

 NumberFormat nf = NumberFormat.getInstance();
 for (int i = 0; i < a.length; ++i) {
     output.println(nf.format(myNumber[i]) + "; ");
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...