题解 | #字符串分隔#

字符串分隔

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();
    }
    
    
}


全部评论

相关推荐

07-18 18:09
门头沟学院 Java
点赞 评论 收藏
分享
仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务