华为机试(4)字符串分割

package java_huaweijishi;
import java.util.Scanner;
/**
 * 题目:连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; 
 * 长度不是8整数倍的字符串请在后面补数字0,空字符串不处理
 * @author hexiaoli
 *思路:
 *1)常规(递归):如果字符串长度大于8小于等于8两种情况
 *  小于等于8的时候,索引值index如果小于字符串长度,输出字符串中的字符,否则输出0;
 *  大于8的时候,索引值index在0-7时输出,换行,再递归输出字符串索引值8之后的
 *2)直接判断字符串长度是不是8的倍数,不是补0,以8为长度,然后递归输出
 *
 */ 
public class StringSeperate {
    public static void stringSeperate1(String str){
    	int length = str.length();
    	if(str == null || length == 0){
    		System.out.println("不处理");
    		return ;
    	}
        if(length <= 8){
        	for (int i = 0; i < 8; i++) {
				if(i < str.length()) {
					System.out.print(str.charAt(i));
				}else {
					System.out.print("0");
				}
			}
        }else {
        	for (int i = 0; i < 8; i++) {
        		System.out.print(str.charAt(i));
        	}
        	System.out.println();
        	stringSeperate1(str.substring(8));
        }
    }
    public static void stringSeperate2(String str) {
    	if(str.length()%8 != 0 ) {
    		str += "00000000"; 
    	}
    	while(str.length()>=8){
    		System.out.println(str.substring(0, 8));
    		str=str.substring(8);
    	}
    }
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String str1 = input.nextLine();
		String str2 = input.nextLine();
		input.close();
		stringSeperate1(str1);
		System.out.println();
		stringSeperate2(str1);
		System.out.println();
		stringSeperate1(str2);
		System.out.println();
		stringSeperate2(str2);
	}

}

猜你喜欢

转载自blog.csdn.net/hxl0925/article/details/89358000
今日推荐