GuilinDev

Lc1556

05 August 2008

1556. Thousand Separator

给一个整数 n,请你每隔三位添加点(即 “.” 符号)作为千位分隔符,并将结果以字符串格式返回。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
示例 1:

输入:n = 987
输出:"987"

示例 2:

输入:n = 1234
输出:"1.234"

示例 3:

输入:n = 123456789
输出:"123.456.789"

示例 4:

输入:n = 0
输出:"0"

按照String来处理,从后向前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
    public String thousandSeparator(int n) {
        StringBuilder sb = new StringBuilder();
        String s = String.valueOf(n);
        int count = 0;
        for (int i = s.length() - 1; i >= 0; i--) {
            sb.append(s.charAt(i));
            count++;
            // 如果cnt%3==0,并且i!=0(不是最后一个字符)
            if (count % 3 == 0 && i != 0) {
                sb.append(".");
            }
        }
        return sb.reverse().toString();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
    public String thousandSeparator(int n) {
        int count = 0;
        StringBuffer result = new StringBuffer();
        do {
            int cur = n % 10;
            n /= 10;
            result.append(cur);
            ++count;
            if (count % 3 == 0 && n != 0) {
                result.append('.');
            }
        } while (n != 0);
        result.reverse();
        return result.toString();
    }
}