package NiukeBrush;
import java.util.Scanner;
//连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,
//长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
//首先输入一个整数,为要输入的字符串个数。
//例如:
//输入: 2
// abc
// 12345789
//输出:abc00000
// 12345678
// 90000000
//这里总结下二维数组的定义:比如一个二维数组 int[3][4] ,3代表排,4代表列
//总结二:Integer.valueOf(sc.nextLine());包装类的valueOf()
//总结三:String.subString(int beginindex,int endindex):注意这里的截取字符串是头截取,尾部不截取
//总结四:如果要连续对一个东西进行键盘输入的话,使用for
//总结五:
public class Huawei35 {
public static void main(String[] args) {
//键盘输入
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
//定义键盘输入整数
// int a=Integer.valueOf(sc.nextLine());
// //或者用
int a=sc.nextInt();
// String[] array= new String[]{sc.next()};
String[] array=new String[a];
for(int c=0;c<a;c++)
{
array[c]=sc.next();
}
addString(a,array);
}
sc.close();
}
private static void addString(int a,String[] array){
//判断每个字符串的长度
for(int i=0;i<a;i++)
{
if(array[i].length()<8 && array[i].length()>=0)
{
//定义一个StringBuilder
StringBuilder sb=new StringBuilder(array[i]);
sb.append("00000000");
System.out.println(sb.substring(0,8));
}
if(array[i].length()==8)
{
System.out.println(array[a]);
System.out.println("00000000");
}
if(array[i].length()>8)
{
//定义一个整数来判断要添加几个0
double temp=array[i].length()/8;
// 这里有个误差,不是整数倍的时候输出0000,是整数倍的时候不输
//如果是8的整数倍
StringBuilder sb1=new StringBuilder(array[i]);
sb1.append("00000000");
if(array[i].length()%8==0){
for(int j=0;j<temp;j++)
{
System.out.println(sb1.substring(j*8,j*8+8));
}
}
else{
for(int j=0;j<=temp;j++)
{
System.out.println(sb1.substring(j*8,j*8+8));
}
}
}
}
}
}
总结五点:1键盘输入,连续不断输入用for
2 String.subString(int beginindex,int endindex):截头不截尾
3 数组越界的时候检查代码有没逻辑有没有弄错
4二维数组int【i】【j】 i代表排j代表列
5包装类 Integer.valueOf()
这个代码显示能够通过40%,然后就数组越界了,参考了别人的代码,