字符串分隔

题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)

输出描述:
输出到长度为8的新字符串数组

示例1
输入

abc
123456789
输出

abc00000
12345678
90000000

代码:

import java.util.Scanner;

public class Main{
    public static void main(String [] args){
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
            String str=input.nextLine();
            while(str.length()>=8){
                System.out.println(str.substring(0,8));
                str=str.substring(8);
            }
            while(str.length()<8&&str.length()>0){
                str=str+"00000000";
                System.out.println(str.substring(0,8));
            }
        }

    }
}

或者

/*import java.util.*;

public class Main{
    public static void main(String [] args){
        Scanner input = new Scanner(System.in);
        while(input.hasNext()){
            String str=input.nextLine();
            StringBuffer sb=new StringBuffer(str);
            if(str.length()%8!=0){ //判断输入的字符数是否是8的倍数
                int num=8-str.length()%8; //8-计算出不是8的倍数的余数
                for(int i=0;i<num;i++){  //遍历多出的几个数并补0凑成8个字符,已达到能被8整除
                    sb.append('0');
                }
            }
            while(sb.length()>=8){
                System.out.println(sb.substring(0,8));
                sb=sb.delete(0,8);
            }
        }

    }
}
*/

/*import java.util.*;

public class Main{
    public static void main(String [] args){
        Scanner input=new Scanner(System.in);
        while(input.hasNext()){
            String str1=input.nextLine();
            String str2=input.nextLine();
            SplitString(str1);
            System.out.println();
            SplitString(str2);
        }

    }
    static void SplitString(String str){
        if(str.length()<=8){
            for(int i=0;i<str.length();i++){
                System.out.print(str.charAt(i));
                
            }
            int num=8-str.length();
            for(int j=0;j<num;j++){
                System.out.print('0');
            }
        }else{
            for(int k=0;k<8;k++){
                System.out.print(str.charAt(k));
            }
            System.out.println();
            SplitString(str.substring(8)); //递归,看看除去前8个字符后的长度是否大于8
        }
    }
}*/

import java.util.*;

public class Main{
    public static void main(String [] args){
        Scanner input=new Scanner(System.in);
        while(input.hasNext()){
            String str1=input.nextLine();
            String str2=input.nextLine();
            SplitString(str1);
            System.out.println();
            SplitString(str2);
        }

    }
    static void SplitString(String str){
        if(str.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 k=0;k<8;k++){
                System.out.print(str.charAt(k));
            }
            System.out.println();
            SplitString(str.substring(8)); //递归,看看除去前8个字符后的长度是否大于8
        }
    }
}

下面讲讲substring()方法:
注意点:
1,两个S都要小写!
2,属于String对象的方法。
3,索引下标从0开始
4,返回一个从start开始到end的字符串,但不包含end索引位置的字符。

substring方法
返回位于 String 对象中指定位置的子字符串。

strVariable.substring(start, end)
“String Literal”.substring(start, end)

参数
start

指明子字符串的起始位置,该索引从 0 开始起算。

end

指明子字符串的结束位置,该索引从 0 开始起算。

说明
substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。

substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。例如,strvar.substring(0, 3) 和 strvar.substring(3, 0) 将返回相同的子字符串。

如果 start 或 end 为 NaN 或者负数,那么将其替换为0。

子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。

示例
下面的示例演示了 substring 方法的用法。

function SubstringDemo(){
var ss; // 声明变量。
var s = “The rain in Spain falls mainly in the plain…”; ss = s.substring(12, 17); // 取子字符串。
return(ss); // 返回子字符串。
要与substr()方法相区别:
1,substr返回从指定位置开始的指定长度的子字符串
substr 方法

返回一个从指定位置开始的指定长度的子字符串。

stringvar.substr(start [,length ])

参数

stringvar

必选项。要提取子字符串的字符串文字或 String 对象。

start

必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。

length
可选项。在返回的子字符串中应包括的字符个数。

说明

如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。

示例

下面的示例演示了substr 方法的用法。

function SubstrDemo(){
var s, ss; // 声明变量。
var s = “The rain in Spain falls mainly in the plain.”;
ss = s.substr(12, 5); // 获取子字符串。
return(ss); // 返回 “Spain”。

substring(int beginIndex,int endIndex)中第一个参数是开始位置,第二个参数是结束位置,

String s=“abcdefg”;
System.out.println(s.substring(2,4));

结果:cd

如果只给一个参数,是从参数位置开始,一直到结束

String s=“abcdefg”;
System.out.println(s.substring(2));

结果:cdefg

注意:下标从零开始,包括前面的,不包括后面的,也可以看成是下标从一开始,不包括开始,包括结束,实在蒙圈自己测试一下就都明白了

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值