1、题目描述:
连续输入字符串(输出次数为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、思路:
首先使用字符串数组存储输入进来的字符串,然后,遍历字符串数组,对每个元素的字符串单独处理,分为长度大于8,小于8,等于8,,三种情况。最后将处理完的字符串保存到结果集中。
3、代码:
import java.util.*; public class Main{ public static void main(String [] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ int count=scan.nextInt(); String[] strArr=new String[count]; for(int i=0;i<count;i++){ strArr[i]=scan.next(); } List resultList=getCmp(strArr); for(int j=0;j<resultList.size();j++){ String s=String.valueOf(resultList.get(j)); System.out.println(s); } } } public static ArrayList<String> getCmp(String [] strArr){ ArrayList<String> resultList=new ArrayList<>(); //遍历输入数组 for(int i=0;i<strArr.length;i++){ String s=strArr[i]; int length=s.length(); if(length<8){ int addCount=8-length; for(int j=0;j<addCount;j++){ s=s+"0"; } resultList.add(s); }else if(length>8){ //字符串的长度可能是8的好几倍,因此需要将字符串每八个生成一个新的字符串 int start=0; while((length-start)>8){ String tempStr=s.substring(start,start+8); start=start+8; resultList.add(tempStr); } int addCount1=8-length+start; String lastString=s.substring(start,length); for(int j=0;j<addCount1;j++){ lastString=lastString+"0"; } resultList.add(lastString); }else{ resultList.add(s); } } return resultList; } }