1.笨方法
const arr = readline().split(""),
len = arr.length;
let res = "";
for(let i = 0; i < len; i ++){
if(res.length < 8){
res += arr[i];
}else{
console.log(res);
res = arr[i]; //这里不能使res置为初始空字符串,否则会丢失9n位的字符
}
}
if(res.length < 8){
for(let i = res.length; i < 8; i ++){
res += 0;
}
}
console.log(res);遍历输入,每8位字符将输入中的字符存进res字符串并输出。为了补齐最后未满8位的res字符串,结束遍历后判断res字符串的长度是否未满8位,若不满8位则补0。
2.取子字符串
var lines = ''
while(line = readline()){
var str = line +'00000000';
for(let i = 8; i < str.length; i += 8) {
console.log(str.substring(i - 8, i));
}
}翻看评论区大佬留的代码,比我自己写的精简的多。
其为了避免提取到不满8位的子字符串,一开始就给原字符串补了8个0。且为了避免提取到多余的0字符,for循环的i从8开始,每个循环i+8,字符串提取i-8到i位。
我又按照这个逻辑按照自己的习惯写了一遍。
const line = readline(),
str = line +'00000000';
let len = str.length;
for(let i = 8; i < len; i += 8) {
console.log(str.substring(i - 8, i));
}
京公网安备 11010502036488号