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

import java.util.*;

public class Main{
	public static void split(String s){
		if(s.length()<8){   //如果输入的字符串长度小于8,则添加"0";
			String s1 = s;
			while(s1.length()!=8){
				s1 = s1+"0";
			}
			System.out.println(s1);
			
		}else if(s.length() == 8){
			System.out.println(s);  //如果字符串长度等于8,直接输出;
			
		}else {
			String s2 = s.substring(0, 8);
			System.out.println(s2);
			split(s.substring(8, s.length()));  //如果字符串长度大于8,先截取前8个字符,然后递归调用此方法
		}
	}
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        for(int i=0; i<2; i++) {
        	String s = in.nextLine();
        	split(s);
        }
        
    }
}

这个题目显然要分情况讨论:
如果字符串长度小于8,我们可以新建一个字符串s1,把输入的字符串s赋值给s1,然后在s1的基础上循环加"0",循环结束条件为s1的长度为指定值8;
如果字符串长度等于8,则直接输出;
如果字符串长度大于8,则首先使用substring()方法截取8个长度的字符直接输出,剩余的字符串则递归调用此方法,从头开始。

这里需要注意的是:substring(beginIndex, endIndex)方法中的
endIndex参数实际起作用的是endIndex-1;
正如代码中显示的:String s2 = s.substring(0, 8);
beginIndex显然为0,这里endIndex为8,但其实真正取到的字符序列为0~7。
也就是说substring方法的参数范围是:左闭右开

还有一点就是递归的使用,显然此例可以很好的使用递归。

只要每天积累,一定会有收获!
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值