字符串分隔_牛课网练习题

题目描述

•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(输入2次,每个字符串长度小于100)

输出描述:

输出到长度为8的新字符串数组
示例1

输入

abc
123456789

输出

abc00000
12345678
90000000

实现代码

import java.util.Scanner;
import java.util.ArrayList;
public class Main{
    public  static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String st1 = sc.nextLine();
        String st2 = sc.nextLine();
        ArrayList<String> al = new ArrayList<String>();
        make(st1,al);
        make(st2,al);
        for(String s : al){
            System.out.println(s);
        }
    }
/**将一个字符串按8分隔,不够补零:
*1 将字符串的长度lenst除以8得出倍数n和余数yu;
*2 使用循环,循环次数为n,按8的倍数截取字符串,然后将截取到的字符串存放到ArrayList中
* 3 在余数不为0时,通过8-yu得到需要补m个零,获得字符串除以8后剩余的字符串endstr。利用循环往endstr末尾添加0
* 4 将3的内容存放进ArrayList
*/
    public static ArrayList<String> make(String st,ArrayList<String> al){
        int lenst = st.length();
        //能几次被8整除
        int n = lenst/8;
        //余数
        int yu = lenst%8;
         for(int i=0;i<n;i++){
                al.add(st.substring(i*8, 8*(i+1)));
          }
          if(yu!=0){
              String endst = st.substring(8*n);
              for(int i =0;i<8-yu;i++){
                  endst = endst + 0;
             }
             al.add(endst);
          }
           return al;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容