描述
•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(每个字符串长度小于等于100)
输出描述:
依次输出所有分割后的长度为8的新字符串
示例1
输入:
abc
输出:
abc00000
题解:
let str = 'abc';
//首先判断字符串长度是否大于8,如果小于8的话,对其进行+0的操作
if (str.length < 8) {
str = sliceStr(str);
} else {
//字符串大于8,判断有几个8,然后对其循环裁剪拼接
let num = parseInt(str.length / 8);
let arr = "";
for (let j = 0; j < num; j++) {
arr += str.slice(j * 8, (j + 1) * 8);
}
//取出其最后小于8的字符,重复上面小于8的操作
let last = str.slice(num * 8, str.length);
str = arr + sliceStr(last);
}
console.log(str);
//对小于8的字符进行操作拼接
function sliceStr(str) {
let length = 8 - str.length;
for (let i = 0; i < length; i++) {
str += "0";
}
return str;
}
第二个简便思路
let overNumber=line.length % 8;//line 代表原始字符串
// 原字符串长度是否为8的倍数,如果是,那就正常每隔8个字符取一次,如果不是倍数,那看余数和8相差多少
// 缺几个,就拼接几个0到原字符后面,还是形成一个长度为8的倍数的字符串,
// 直接用+或+=来拼接字符串,来替代 concat()拼接
let str=overNumber===0?line : line+newString('0').repeat(8-overNumber);
for(let i=0;i<str.length;){
console.log(str.slice(i,i+=8))
}