zoukankan      html  css  js  c++  java
  • 字符串分割

    1、题目描述:

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

    首先输入一个整数,为要输入的字符串个数。

    例如:

    输入:2

          abc

          12345789

    输出:abc00000

          12345678

          90000000

    接口函数设计如下:

    /*****************************************************************************
    功能:存储输入的字符创

    输入:字符串

    输出:无
        
    返回:0表示成功,其它返回-1
    ******************************************************************************/

    int  AddString(char *strValue);
    /****************************************************************************
    功能:获取补位后的二维数组的长度

    输入:无

    输出:无
        
    返回:二维数组长度
    *****************************************************************************/

    int  GetLength();


    /*****************************************************************************
    功能:将补位后的二维数组,与输入的二维数组做比较

    输入:strInput:输入二维数组,iLen:输入的二维数组的长度

    输出:无
        
    返回:若相等,返回0;不相等,返回-1.其它:-1;
    ******************************************************************************/
    int  ArrCmp(char strInput[][9],int iLen);、

    输入描述:

    首先输入数字n,表示要输入多少个字符串。连续输入字符串(输出次数为N,字符串长度小于100)。

    输出描述:

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

    示例1

    输入

    复制
    2
    abc
    123456789
    

    输出

    复制
    abc00000
    12345678
    90000000

    2、思路:

      首先使用字符串数组存储输入进来的字符串,然后,遍历字符串数组,对每个元素的字符串单独处理,分为长度大于8,小于8,等于8,,三种情况。最后将处理完的字符串保存到结果集中。

    3、代码:

    import java.util.*;
    public class Main{
        public static void main(String [] args){
            Scanner scan = new Scanner(System.in);
            while(scan.hasNext()){
                int count=scan.nextInt();
                String[] strArr=new String[count]; 
                for(int i=0;i<count;i++){
                    strArr[i]=scan.next();
                }
                List resultList=getCmp(strArr);
                for(int j=0;j<resultList.size();j++){
                    String s=String.valueOf(resultList.get(j));
                    System.out.println(s);
                }
                
            }
            
        }
    
        public static ArrayList<String> getCmp(String [] strArr){
            ArrayList<String> resultList=new ArrayList<>();
            //遍历输入数组
            for(int i=0;i<strArr.length;i++){
                String s=strArr[i];
                int length=s.length();
                if(length<8){
                    int addCount=8-length;
                    for(int j=0;j<addCount;j++){
                        s=s+"0";
                    }
                    resultList.add(s);
                }else if(length>8){
                    //字符串的长度可能是8的好几倍,因此需要将字符串每八个生成一个新的字符串
                    int start=0;
                    while((length-start)>8){
                        String tempStr=s.substring(start,start+8);
                        start=start+8;
                        resultList.add(tempStr);
                    }
                    int addCount1=8-length+start;
                    String lastString=s.substring(start,length);
                    for(int j=0;j<addCount1;j++){
                        lastString=lastString+"0";
                    }
                    resultList.add(lastString);
                }else{
                    resultList.add(s);
                }
            }
            return resultList;
        }
    }
  • 相关阅读:
    为什么switch里的case没有break不行
    CLS的探索:Python如何让日志免费云化
    做一次“黑客“,入侵一次自己的服务器
    斥资288买了三年服务器之后应该如何配置
    Scrapy入门到放弃01:开启爬虫2.0时代
    c#自制抽奖小程序
    c#中的几种Dialog
    解决数据库排序空值排在前问题
    Oracle 数据库添加定时事件
    FileReader 对象实现图片预览
  • 原文地址:https://www.cnblogs.com/guoyu1/p/12411416.html
Copyright © 2011-2022 走看看