华为机试题 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