首页 > 其他分享 >按位长度进行字符串的分割输出,长度不足补0

按位长度进行字符串的分割输出,长度不足补0

时间:2024-07-27 16:31:34浏览次数:9  
标签:String int stringBuilder splitStrArr length 按位 srcStr 字符串 长度

  1 import java.util.ArrayList;
  2 import java.util.List;
  3 public class NiukeTest {
  4 public static void main(String[] args) {
  5 List<String> strList=getSpilitStrList("1847519751890554548999");
  6 System.out.println(strList);
  7 }
  8 /**
  9 * 按8位长度进行字符串的分割输出,长度不足补0
 10 * @param srcStr
 11 * @return
 12 */
 13 public static String getSpilitStr(String srcStr){
 14 if ("".equals(srcStr.trim())){
 15 return null;
 16 }
 17 if (srcStr.length()>100){
 18 System.out.println("输入字符串过长!超过长度100");
 19 return null;
 20 }
 21 // helloworldiamwanzhongliao
 22 StringBuilder stringBuilder = new StringBuilder();
 23 boolean flag=false;
 24 String srcStrCopy=srcStr;
 25 int count=1;
 26 for (int i = 0; i < srcStr.length(); i++) {
 27 char charAt = srcStr.charAt(i);
 28 stringBuilder.append(charAt);
 29 if (flag){
 30 if (stringBuilder.toString().contains(" ")){
 31 String[] strings = stringBuilder.toString().trim().split("\\s");
 32 StringBuilder stringBuilder1 = new StringBuilder();
 33 for (int k = 0; k < strings.length; k++) {
 34 stringBuilder1.append(strings[k]);
 35 }
 36 int length = stringBuilder1.length();
 37 if (length%8==0){
 38 String substring = srcStrCopy.substring(count*8);
 39 srcStr=substring;
 40 i=-1;
 41 stringBuilder.append(" ");
 42 count++;
 43 if (srcStr.length()/8<1){
 44 StringBuilder stringBuilder4 = new StringBuilder();
 45 stringBuilder4.append(srcStr);
 46 for (int j = 0; j < 8-srcStr.length(); j++) {
 47 stringBuilder4.append("0");
 48 }
 49 stringBuilder.delete(stringBuilder.toString().lastIndexOf("
 50 "),stringBuilder.toString().length());
 51 stringBuilder.append(" ");
 52 stringBuilder.append(stringBuilder4.toString());
 53 break;
 54 }
 55 continue;
 56 }else {
 57 if (srcStr.length()/8<1){
 58 StringBuilder stringBuilder3 = new StringBuilder();
 59 stringBuilder3.append(srcStr);
 60 for (int j = 0; j < 8-srcStr.length(); j++) {
 61 stringBuilder3.append("0");
 62 }
 63 stringBuilder.delete(stringBuilder.toString().lastIndexOf("
 64 "),stringBuilder.toString().length());
 65 stringBuilder.append(" ");
 66 stringBuilder.append(stringBuilder3.toString());
 67 break;
 68 }
 69 }
 70 }
 71 }else {
 72 if (stringBuilder.toString().length()%8==0){
 73 String substring = srcStrCopy.substring(count*8);
 74 srcStr=substring;
 75 i=-1;
 76 stringBuilder.append(" ");
 77 count++;
 78 flag=true;
 79 continue;
 80 }else if (srcStrCopy.length()/8<1){
 81 StringBuilder stringBuilder2 = new StringBuilder();
 82 stringBuilder2.append(srcStrCopy);
 83 for (int j = 0; j < 8-srcStrCopy.length(); j++) {
 84 stringBuilder2.append("0");
 85 }
 86 return stringBuilder2.toString();
 87 }
 88 }
 89 }
 90 return stringBuilder.toString();
 91 }
 92 /**
 93 * 获取分割字符串集合
 94 * @return
 95 */
 96 public static List<String> getSpilitStrList(String srcStr){
 97 String spilitStr = getSpilitStr(srcStr);
 98 String[] splitStrArr = spilitStr.split("\\s");
 99 int length = splitStrArr.length;
100 ArrayList<String> stringArrayList = new ArrayList<>();
101 if (length>1){
102 for (int i = 0; i < splitStrArr.length; i++) {
103 if (i==splitStrArr.length-1){
104 if (splitStrArr[splitStrArr.length-1].startsWith("0")){
105 continue;
106 }
107 }
108 stringArrayList.add(splitStrArr[i]);
109 }
110 }else {
111 stringArrayList.add(spilitStr);
112 }
113 return stringArrayList;
114 }
115 }

 

标签:String,int,stringBuilder,splitStrArr,length,按位,srcStr,字符串,长度
From: https://www.cnblogs.com/liaowanzhong/p/18327105

相关文章

  • 获取 Python Decimal 的精确十进制字符串表示形式?
    如果我有一个PythonDecimal,我怎样才能可靠地获得数字的精确十进制字符串(即不是科学记数法)表示而不带尾随零?例如,如果我有:>>>d=Decimal('1e-14')我会像:>>>get_decimal_string(d)'0.00000000000001'但是:Decimal类没有任何to_......
  • Python,pandas从字符串中解析数字和字符串
    在Python中,我想解析一个字符串并将数字部分(可能有也可能没有小数点)作为浮点数返回,并将后缀作为字符串返回。示例为:7.1英寸->7.1,英寸7.1”->7.1,“7英寸->7.0,英寸-10dB->-10.0,dB-10.2dB->-10.2,dB数字部分和后缀之间没有空格。另外,我想将其应......
  • LeetCode767 重构字符串
    题解通常直接思考最佳策略是十分困难的,我们不妨思考每一种情况需要如何处理:整个字符串只有一种字符若字符串长度为\(1\),那么字符串本身即为答案;若字符串长度大于等于\(2\),那么不存在可行方案整个字符串只有两种字符\(c_1,c_2\),数量分别为\(n_1,n_2\)若字符\(c_1\)的......
  • 算法笔记|Day8字符串II
    算法笔记|Day8字符串II☆☆☆☆☆leetcode151.翻转字符串里的单词题目分析代码☆☆☆☆kamacoder55.右旋字符串(待补充)题目分析代码☆☆☆☆☆leetcode28.实现strStr()题目分析代码☆☆☆☆☆leetcode459.重复的子字符串题目分析代码☆☆☆☆☆leetcode151......
  • 在PB中,字符串与十六进制的互转
    //字符串转换为16进制stringls_hex='',hex=''charlch_hex[0to15]={'0','1','2','3','4','5','6','7','8','9','a','......
  • MySql 字段类型长度问题理解
    mysql中字段长度理解字符长度设计表中设置的是字符长度,任意字符都占一个字符长度,使用char_length函数获取char_length(`name`)字节长度字节长度和数据表的字符集有关。length获取字节长度。length(`name`)在mysql中如果是latin1字符集下,一个中文汉字占2个字节数;......
  • TypeError:Flask 应用程序中的字符串索引必须是整数,而不是“str”
    这是我的代码:fromflaskimportFlask,render_templatefrompostimportPostimportrequestsposts=requests.get("https://api.npoint.io/5abcca6f4e39b4955965").json()post_objects=[]forpostinposts:post_obj=Post(post['id'],po......
  • 迭代字符串列表以检索字符串组
    给定以下列表:inp=["arg1:","list","of","args","arg2:","other","list"]如何开发这样的字典?out={"arg1":["list","of","args"],"arg2":......
  • 代码随想录day10 || 232 栈实现队列, 225 队列实现栈,20 删除有效括号,1047 删除字符串相
    232实现队列//go本身并不支持原生的栈和队列结构,都是通过切片实现的//leetcodesubmitregionbegin(Prohibitmodificationanddeletion)typeMyQueuestruct{ Data[]int Sizeint}funcConstructor()MyQueue{ returnMyQueue{}}func(this*MyQueue)Push(......
  • 字符串哈希
    进制哈希BKDRHash哈希函数字符串哈希:$\color{red}{构造一个数字使之唯一代表一个字符串}$。但是为了将映射关系一一对应,也就是,一个字符串代表一个数字,那么一个数字也对应一个字符串。我们希望这一个映射是个单射,即保证任意的字符串对应的数字是唯一的,也就是不出现一个数字对应......