0x00 引言
为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。
题解只写自己理解的解法,其他解法不再增加。题目与解析均在代码里面。
0x01 难度等级
简单
0x02 代码
package 简单; import java.util.Scanner; /** * 描述 * •输入一个字符串,请按长度为8拆分每个输入字符串并进行输出; * * •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 * 输入描述: * 连续输入字符串(每个字符串长度小于等于100) * * 输出描述: * 依次输出所有分割后的长度为8的新字符串 * * 示例1 * 输入: * abc * 输出: * abc00000 */ public class 字符串分隔 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); SPLIT(s); // String k="asdfghjkllaaaaaabbbbbbbbkkkkkkk"; // while (k.length()>8){ // System.out.println(k.substring(0,8));//只截取前8个字符打印 // //上面的语句会不停地打印截取的8个字符,这时需要赋值 // // 就是需要把截取完后的剩下的字符放到k中 // k=k.substring(8);//这一步是停止while循环的关键,上面打印完 // } } public static void SPLIT(String s) { while (s.length() >= 8) { System.out.println(s.substring(0,8));//asdfghjk //因为是8个8个的读,所以前面的while循环会一直不断8个8个的截取,并打印出来,直到s<8 //例如,asdfghjklqwe截取完8个丢掉后,剩4个:lqwe,substring(int beginIndex) 把剩下的字符串赋值给s s=s.substring(8); } if (s.length() < 8 && s.length() > 0) {//此处不能等于0,等于0会再加8个0打印出来,冗余了 s += "00000000"; System.out.println(s.substring(0, 8)); } else if (s.length() == 8) { System.out.println(s); } } }
0x03 算法思想
考查截取方法的使用:(考查对substring(0,8)与s.substring(8)方法的灵活使用)
输入字符串后,8个8个的截取,打印其内容,然后切完前面的8个,把剩下的内容赋值给原来的字符串,继续while循环,直到不满足条件为止进入if判断,为不满8个的字符串进行补0操作。
0x04 运行结果
标签:JAVA,截取,System,while,substring,println,算法,字符串,刷题 From: https://www.cnblogs.com/cute-puli/p/17133689.html