题解 | #字符串分隔#
字符串分隔
https://www.nowcoder.com/practice/d9162298cb5a437aad722fccccaae8a7
BR读入一行
- 判断是否空字符串,是则不处理,空行输出
- 判断长度是否超过8,大于8位满足要求截取输出即可,进入下一次,end+8,下一个范围判断
-
- 对于截取长度end定义为8,同时为最后截取的前一位(数组下标位置),注意每次起始位置-1,subString起始位置0,7满足8位,正常序号8在数组中不截取
- 判断是否等于8,此时end,截取完成退出循环即可,end=sl,截取位置右边写sl也可以
- 判断是否小于8,得出余数计算得到0的个数,截取到最后(长度位置)即可,退出循环
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String ss = br.readLine(); StringBuilder builder = null; int sl = ss.length(); if (sl == 0){ System.out.println();//不处理 } //循环截取,0开始截取,长度是1开始 int end = 8; while (true){ if (sl-end >0){//长度大于等于8 System.out.println(ss.substring(end-8, end)); }else if (sl-end <0){//小于8 int bu = 8-(sl%8);//0的个数 builder = new StringBuilder(ss.substring(end-8,sl)); for (int i = 0; i < bu; i++) { builder.append('0'); } System.out.println(builder); break; }else if (sl-end == 0){ System.out.println(ss.substring(end-8,sl)); break; } end += 8; } // br.close(); } }