不使用任何实用程序方法将逗号插入数字

时间:2014-06-04 16:05:15

标签: java string integer

我想在不使用任何实用程序API的情况下将Integer 35634646转换为逗号","(印度语语言环境)。

例如,如果我的输入是12345,则输出应为:12,345或如果输入为123456,则输出应为1,23,456。

我无法使用任何现有的实用程序功能。

我需要印度编号格式。

http://en.wikipedia.org/wiki/Indian_numbering_system

3 个答案:

答案 0 :(得分:1)

maby不是最好的方式,但我很着急,而且有效。

    String s = "25467896743242";
    System.out.println(s.charAt(0));
    StringBuilder sb = new StringBuilder(s);
    s = sb.reverse().toString();
    //int groupCount=4;
    sb = new StringBuilder();
    for (int i = s.length() - 1; i >= 0; i--) {
        sb.append(s.charAt(i));
        if ((i == 3) || i > 3 && i % 2 == 1) {
            sb.append(',');
        }
    }
    System.out.println(sb);
}

<强>输出

2,54,67,89,67,43,242

答案 1 :(得分:1)

这段代码可以帮到你:

long l = 1234567;
String s = String.valueOf(l);

StringBuffer sb = new StringBuffer();
int j=0;
for (int i=s.length()-1;i>=0;i--) {
    if (j==3){
        sb.append(',');
        j=0;
    }
    sb.append(s.charAt(i));
    j++;
}

System.out.println(sb.reverse());

答案 2 :(得分:1)

好的,我已经修改了T.G的印第安格式答案:

    private static void printNum(int number) {
    String s = number + "";
    StringBuilder sb = new StringBuilder(s);
    s = sb.reverse().toString();
    sb = new StringBuilder();
    for (int i = s.length() - 1; i >= 0; i--) {
        sb.append(s.charAt(i));
        if (i % 2 == 1 && i != 1)
            sb.append(',');
    }
    System.out.println(sb);
}

35315626给出的输出为3,53,15,626