对字符串进行分割并且补位的算法解析

简介: 重点掌握StringBuilder和StringBuffer和String的区别

image.png

我的思路分析

  • 需要输入字符串,用到Scanner和hasNextLine()。
    (1)建立 Scanner sc = new Scanner(System.in);
    (2)判断有无输入用sc.hasNextLine().
  • 我们在接受字符串之后此处我的做法是将字符串的长度给求出来通过length()方法即可求出size.然后通过8-8%size的方式可以得到需要补0的位数。使用StringBuilder中的append()函数进行字符串修改,最后通过toString()转化为字符串即可。
    字符串缓冲区的建立:StringBuilder sb = new StringBuilder();
  • 输出时,截取前8位进行输出,并更新字符串。用到str.substring()函数:
    (1)str.substring(i)意为截取从字符索引第i位到末尾的字符串。
    (2)str.substring(i,j)意为截取索引第i位到第(j-1)位字符串。包含i,不包含j。

相关的知识点补充

StringBuilder和StringBuffer和String的区别

String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。StringBuffer对象则代表一个字符序列可变的字符串.而StringBuilder也是字符序列可变的字符串.它们有共同的父类 AbstractStringBuilder,并且两个类的构造方法和成员方法也基本相同。不同的是,StringBuffer是线程安全的,而StringBuilder是非线程安全的.所以如果我们讲究性能而不需要过度关注线程安全的话,在三者中我们最好使用StringBuilder.


//

importjava.util.Scanner;
importjava.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息publicclassMain {
publicstaticvoidmain(String[] args) {
Scannerin=newScanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseStringstr=in.nextLine();
StringBuilderstr1=newStringBuilder();
str1.append(str);
intsize=str.length();
intcount=8-8%size;
while(count>0){
str1.append("0");
count--;
            }
Stringsb=str1.toString();
System.out.println(sb.substring(0,8));
        }
    }
}

结果截图:image.png

相关文章
|
29天前
|
机器学习/深度学习 存储 算法
如何评判算法好坏?复杂度深度解析
如何评判算法好坏?复杂度深度解析
24 0
|
1月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
232 1
|
1月前
|
缓存 算法 C语言
【C++ 标准查找算法 】C++标准库查找算法深入解析(In-depth Analysis of C++ Standard Library Search Algorithms)
【C++ 标准查找算法 】C++标准库查找算法深入解析(In-depth Analysis of C++ Standard Library Search Algorithms)
46 0
|
1天前
|
存储 NoSQL 安全
Redis入门到通关之数据结构解析-动态字符串SDS
Redis入门到通关之数据结构解析-动态字符串SDS
|
16天前
|
算法
【算法学习--字符串】(不含KMP算法)
【算法学习--字符串】(不含KMP算法)
|
18天前
|
存储 缓存 算法
深度解析JVM世界:垃圾判断和垃圾回收算法
深度解析JVM世界:垃圾判断和垃圾回收算法
|
19天前
|
存储 算法
【算法与数据结构】深入解析二叉树(二)之堆结构实现
【算法与数据结构】深入解析二叉树(二)之堆结构实现
|
23天前
|
存储 算法
从动态规划到贪心算法:最长递增子序列问题的方法全解析
从动态规划到贪心算法:最长递增子序列问题的方法全解析
21 2
|
1月前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真

推荐镜像

更多