题解 | #字符串分隔#
字符串分隔
https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7
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)); }