首页 > 编程语言 >算法刷题-字符串分隔-JAVA

算法刷题-字符串分隔-JAVA

时间:2023-02-18 21:46:48浏览次数:45  
标签:JAVA 截取 System while substring println 算法 字符串 刷题

0x00 引言

为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。

题解只写自己理解的解法,其他解法不再增加。题目与解析均在代码里面。

0x01 难度等级

简单

0x02 代码

package 简单;

import java.util.Scanner;

/**
 * 描述
 * •输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;
 *
 * •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
 * 输入描述:
 * 连续输入字符串(每个字符串长度小于等于100)
 *
 * 输出描述:
 * 依次输出所有分割后的长度为8的新字符串
 *
 * 示例1
 * 输入:
 * abc
 * 输出:
 * abc00000
 */
public class 字符串分隔 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        SPLIT(s);

//        String k="asdfghjkllaaaaaabbbbbbbbkkkkkkk";
//       while (k.length()>8){
//           System.out.println(k.substring(0,8));//只截取前8个字符打印
//           //上面的语句会不停地打印截取的8个字符,这时需要赋值
//           // 就是需要把截取完后的剩下的字符放到k中
//           k=k.substring(8);//这一步是停止while循环的关键,上面打印完
//       }


    }

    public static void SPLIT(String s) {

        while (s.length() >= 8) {
            System.out.println(s.substring(0,8));//asdfghjk
            //因为是8个8个的读,所以前面的while循环会一直不断8个8个的截取,并打印出来,直到s<8
            //例如,asdfghjklqwe截取完8个丢掉后,剩4个:lqwe,substring(int beginIndex) 把剩下的字符串赋值给s
            s=s.substring(8);
        }
        if (s.length() < 8 && s.length() > 0) {//此处不能等于0,等于0会再加8个0打印出来,冗余了
            s += "00000000";
            System.out.println(s.substring(0, 8));
        } else if (s.length() == 8) {
            System.out.println(s);
        }
    }
}

 

0x03 算法思想

考查截取方法的使用:(考查对substring(0,8)s.substring(8)方法的灵活使用)

输入字符串后,8个8个的截取,打印其内容,然后切完前面的8个,把剩下的内容赋值给原来的字符串,继续while循环,直到不满足条件为止进入if判断,为不满8个的字符串进行补0操作。

 

 

0x04 运行结果

  

标签:JAVA,截取,System,while,substring,println,算法,字符串,刷题
From: https://www.cnblogs.com/cute-puli/p/17133689.html

相关文章

  • PAT-basic-1023 组个最小数 java
    一、题目给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,......
  • PAT-basic-1021 个位数统计 java
    一、题目给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−1​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=1......
  • PAT-basic-1022 D进制的A+B java
    一、题目输入两个非负10进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出3个整数 A、B 和 D。输出格式:输出......
  • Java文章抓取
    @PostMapping("/grab")@ApiOperationSupport(order=9)@ApiOperation(value="抓取",notes="传入grabUrl")publicRgrabe(@ApiParam(value="抓取",required=true......
  • Java正则匹配域名白名单
    在上一篇文章《通用正则表达式开源工具,为开源绵尽薄力》中,我们介绍了很多正则表达式的实例,工作中大家也经常遇到新的规则需要匹配,今天就看一下检测域名白名单的几种方式......
  • 关于知识蒸馏,你一定要了解的三类基础算法
    前言 本文将对response-based、feature-based和relation-based这三类基础KD算法进行重点介绍,为大家后续的深入研究、交流打下基础。 本文转载自OpenMMLab作者|......
  • JAVA多线程(二)--线程池
    JAVA多线程(二)--线程池一、线程池概念顾名思义,线程池是管理线程的池子。使用线程池有以下优点:降低线程创建和销毁的开销。提高响应速度。用到时创建和直接使用已创建......
  • 算法刷题 Day 43 | ● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
    1049.最后一块石头的重量II本题就和昨天的416.分割等和子集很像了,可以尝试先自己思考做一做。视频讲解:https://www.bilibili.com/video/BV14M411C7oVhttps://p......
  • Java代码工具快速生成词云图(强烈建议收藏)
    “词云”一词最早是由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(RichGordon)提出的。词云(WordCloud),又称文字云、标签云(TagCloud)、关键词云(KeywordCloud),是对文本......
  • Java 只有值传递
    实参:传递给方法的参数,必须有确定的值。形参:定义方法的参数,接收实参,不需要有确定的值值传递:方法接收的是实参值的拷贝,会创建副本。引用传递:方法接收的是实参所引用的......