华为机试题 HJ4 字符串分隔

Posted yangbocsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试题 HJ4 字符串分隔相关的知识,希望对你有一定的参考价值。

HJ4 字符串分隔

描述

•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:
连续输入字符串(每个字符串长度小于等于100)

输出描述:
依次输出所有分割后的长度为8的新字符串

参考代码1

主要思路:先算出这个字符串能排成完整一行,有几行? 再算出不完整行需要补充多少个零?

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main
    public static void main(String[] args) throws IOException
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int len = str.length();
        // 空字符串不处理,所以只处理字符串
        if(str != null)
            char[] arr = str.toCharArray();
            int row = len/8;    //8个一行,看能排成几行?
            int fullZeros = 8 -(len - row*8); // 还需补多个个0fullZeros [0,7]
            
            // 打印完整的几行
            for(int i = 0; i < row; i++)
                for(int j = i*8; j < (i+1)*8; j++)
                    System.out.print(arr[j]);
                
                System.out.println();
            
            
            // 打印不完整的行 + 补充0
            if(fullZeros != 8)
                for(int i = 8*row;i < len;i++)
                    System.out.print(arr[i]);
                
                
                // 补上fullZeros个0
                for(int i = 0; i < fullZeros; i++)
                    System.out.print(0);
                
            

        
        
    

参考代码2

主要思路:substring() 的使用;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main
    public static void main(String[] args) throws IOException
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while((str = br.readLine()) != null)
            int len = str.length();
            int len1 = len;
            int start = 0;
            while(len > 8)
                System.out.println(str.substring(start, start + 8));
                start += 8;
                len -= 8;
            
            
            if(len > 0)
                String tmp = str.substring(start,len1);
                System.out.print(tmp);
                for(int i = 0; i < 8 - tmp.length(); i++)
                    System.out.print(0);
                
            
            
        
    

以上是关于华为机试题 HJ4 字符串分隔的主要内容,如果未能解决你的问题,请参考以下文章

华为机试题-字符串分隔

华为机试题 坐标移动

华为OD机试 -字符串分割(Java) | 机试题+算法思路+考点+代码解析 2023

华为OD机试 -字符串分割(Java) | 机试题+算法思路+考点+代码解析 2023

Java解 | #HJ4字符串分隔#

牛客刷题HJ4 字符串分隔