题目描述
连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
首先输入一个整数,为要输入的字符串个数。
例如:
输入:2
abc
12345789
输出:abc00000
12345678
90000000
接口函数设计如下:
/*****************************************************************************
功能:存储输入的字符创
输入:字符串
输出:无
返回:0表示成功,其它返回-1
******************************************************************************/
int AddString(char *strValue);
/****************************************************************************
功能:获取补位后的二维数组的长度
输入:无
输出:无
返回:二维数组长度
*****************************************************************************/
int GetLength();
/*****************************************************************************
功能:将补位后的二维数组,与输入的二维数组做比较
输入:strInput:输入二维数组,iLen:输入的二维数组的长度
输出:无
返回:若相等,返回0;不相等,返回-1.其它:-1;
******************************************************************************/
int ArrCmp(char strInput[][9],int iLen);
输入描述:
首先输入数字n,表示要输入多少个字符串。连续输入字符串(输出次数为N,字符串长度小于100)。
输出描述:
按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入
2 abc 123456789
输出
abc00000 12345678 90000000
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ //我要爆炸了,这里不能直接用nextInt();可能是因为有回车的原因, //后面的nextLine()会把回车读进去,所以要用nextLine()再转成int类型 int n = Integer.parseInt(sc.nextLine()); for(int i =0;i<n;i++){ String s = sc.nextLine(); strsplit(s); } } } public static void strsplit(String s){ if(s == null){return;} int a =s.length()%8; StringBuilder sb = new StringBuilder(s); if(a!= 0){ for(int i=8-a;i>0;i--){ sb.append('0'); } } String s1 = sb.toString(); for(int k = 0;k<s1.length();k=k+8){ System.out.println(sb.substring(k,k+8)); } } }