LeetCode 「简单」1556.千位分隔数
题目描述
给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。
示例
输入:n = 987
输出:"987"
输入:n = 1234
输出:"1.234"
输入:n = 123456789
输出:"123.456.789"
输入:n = 0
输出:"0"
解答
toLocaleString
注意:toLocaleString 会自动进行四舍五入
Code
/**
* @param {number} n
* @return {string}
*/
var thousandSeparator = function(n) {
return n.toLocaleString().replaceAll(',', '.');
};
模拟
Code
/**
* @param {number} n
* @return {string}
*/
var thousandSeparator = function(n) {
const str = n.toString();
let result = '';
let count = 0;
// 从右向左遍历字符串
for (let i = str.length - 1; i >= 0; --i) {
++count;
result = str[i] + result;
// 每三位添加一个.
if (count % 3 === 0 && i !== 0) {
result = '.' + result;
}
}
return result;
};
正则表达式
Code
/**
* @param {number} n
* @return {string}
*/
var thousandSeparator = function(n) {
return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
};
