`

把byte数组 以某个字符分割为多个数组

    博客分类:
  • java
 
阅读更多

package com.dfkj.util;

import java.util.ArrayList;
import java.util.List;

public class BB {
    public static void main(String[] args) {

//已 -1,-1,-1,-1,-1 j进行分割
        byte [] bb=new byte[]{-1, -1, -1, -1, -1, 0, 0, 12, -1, -1, -1, -45, 96, -59, 0, 19, -112, 19, -107,-1, -1, -1, -1, -1, 0, 0, 12, -1, -1, -1, -45, 96, -59, 0, 19, -112, 19, -107,-1, -1, -1, -1, -1, 0, 0, 12, -1, -1, -1, -45, 96, -59, 0, 19, -112, 19, -109};
        List<byte[]>  byteList=new ArrayList<byte[]>();
        int end=bb.length;//
        for(int i=bb.length-1;i>0;i--){
            //正常情况
            if((bb[i-1]==-1&&bb[i-2]==-1&&bb[i-3]==-1&&bb[i-4]==-1&&bb[i-5]==-1)||(i-5<15)){
                //正常情况
                int size=end-(i-5);
                byte[] onebyte;
               
                //当减到最后,长度不够了,直接到头
                if(i-5<15){
                    onebyte=new byte[end];
                    System.arraycopy(bb, 0, onebyte, 0, end);
                    byteList.add(onebyte);
                    return ;
                }
                onebyte=new byte[end-(i-5)];
                System.arraycopy(bb, i-5, onebyte, 0, size);
                end=i-5;
                byteList.add(onebyte);
            }
           
           
        }
       
        for (byte[] bs : byteList) {
            for (int i = 0; i < bs.length; i++) {
                System.out.println(bs[i]);
            }
        }
       
       
       
       
           
           
           
    }
}

分享到:
评论

相关推荐

    高速算笔画过程,byte数组方式操作字符串

    可以将数组分割成多个部分,分配给不同的处理器核心,实现并行计算,进一步提升性能。 5. **缓存优化**: 由于byte数组的访问速度快,可以利用缓存机制,预加载常用汉字的笔画信息,减少动态计算,提升整体性能。 6...

    Cstring 与BYTE类型之间转换

    2. **长度检查**:首先检查输入字符串的长度是否超过8个字符,如果超过则返回`FALSE`,因为十六进制数最多可以表示的值为`FFFFFFFF`(32位),即最多8个字符。 3. **逐字符处理**: - 对于每一个字符,通过判断其...

    socket交易报文传输(包含文件传输和字段传输)

    在发送文件时,服务器会将文件分割成多个数据块,每个块单独通过Socket发送,客户端则按顺序接收并组合成原始文件。 在实际应用中,为了提高效率和安全性,文件传输可能需要添加一些额外的机制,比如校验和计算来...

    java第三章上机练习题.doc

    * 字符串的分割:使用 split() 方法将字符串分割成多个子字符串。 Java 第三章上机练习题中涉及了多个重要的知识点,包括数据类型转换、数组和字符串的操作等。这些知识点是 Java 编程的基础,掌握这些知识点是学习...

    C# ASCII码和字符串互转

    如果你有一个包含ASCII字符的字符数组,你可以将其转换为包含ASCII码的字符串。遍历数组并逐个转换每个字符,然后添加到结果字符串中: ```csharp char[] characters = { 'H', 'e', 'l', 'l', 'o' }; ...

    十六进制字符串按位异或运算工具和java位异或运算

    在上述代码中,`Integer.parseInt(hexNumber, 16)`使用了第二个参数16来指定解析的基数为16,从而将十六进制字符串转换为十进制整数。然后,通过`result ^= binaryValue`进行异或运算,将每个十六进制数的结果累加到...

    C#显式类型与隐式转换

    此方法非常适用于拼接多个字符串或将数组转换为以特定格式显示的字符串。 #### 4. 字符串到字节数组的转换 ```csharp byte[] arr = a.Split(' ').Select(x =&gt; byte.Parse(x)).ToArray(); ``` 本段代码展示了如何...

    关于java按字节截取带有汉字的字符串的解法

    在Java编程语言中,处理带有汉字的字符串时,由于汉字占据多个字节,按照字节进行截取可能会导致汉字被不完整地分割,从而产生乱码。为了解决这个问题,我们需要理解Unicode编码以及如何在Java中正确处理多字节字符...

    ABAP常用字符串操作

    字符串分隔是将一个字符串按照特定规则分割成多个子串,这些子串可以存放在一个内表中或者分配给多个变量。 **语法示例**: ```abap SPLIT dobj AT sep INTO {{result1 result2}|{TABLE result_tab}} [IN {BYTE|...

    高效中英文字符串截取方法

    为了避免这种情况,当检测到非ASCII字符的个数为奇数时,`n`会被设置为`p + 1`,以确保整个中文字符都被包含进来。 ```csharp if (m % 2 != 0) n = p + 1; ``` 最后,使用`encode.GetString`方法将字节数组转换回...

    VBA中的字符串操作[参照].pdf

    这些函数可以将多个字符串连接为一个字符串,例如连接多个字符串以形成一个完整的字符串等。 14. 替换字符串 VBA 提供了多种替换字符串的函数,例如 `Replace` 函数等。这些函数可以将字符串中的特定字符或字符串...

    Java中String类的方法及说明.doc

    - `String(byte[] bytes)`: 这个构造函数用于创建一个新字符串,该字符串包含给定字节数组表示的字符。字节按照平台的默认字符集解码。 - `String(char[] value)`: 通过字符数组创建字符串,每个字符数组元素对应...

    Java中String的常用方法.pdf

    - `String[] split(String regex)`: 使用正则表达式`regex`将字符串分割成多个子字符串,并返回一个数组。 6. **子串** - `String substring(int beginIndex)`: 从指定的开始索引截取字符串到末尾。 - `String ...

    C# 串口通讯截取4位字节数据16进制转浮点型输出

    在`ConvertHexToFloat`函数中,我们首先将16进制字符串分割成四个字节,并将每个字节转换为字节值。然后,使用`BitConverter.ToSingle`方法将字节数组转换为浮点数。注意,数组的排列顺序必须遵循计算机系统的字节序...

    java中常用字符串方法总结

    `getBytes()`将字符串转换为字节数组,`new String(byte[], charset)`根据字符集将字节数组还原为字符串。 18. **判断前缀与后缀** `startsWith(String prefix)`和`endsWith(String suffix)`分别用于检查字符串...

    android字符串和16进制转换

    反过来,将16进制字符串转换回ASCII字符串,我们需要将16进制字符串分割成单个字符,然后将它们解析为整数,最后将这些整数转换回相应的字符。这里有一个示例: ```java public String hexToString(String hex) { ...

    java学习笔记

    - 字符串分割:通过`split()`方法按照指定的分隔符将字符串分割成一个数组。 - 字符串替换:使用`replace()`方法可以替换字符串中的某一部分。 - 子字符串提取:通过`substring()`方法可以从字符串中提取子字符串...

    字符串与16进制数据互转

    首先,我们需要将16进制字符串分割成单个字符,然后将每个16进制字符转换回其对应的ASCII或Unicode值,最后用这些值创建一个新的字符串。可以使用`Convert.ToInt32()`函数和`Char.ConvertFromUtf32()`方法: ```...

    Ruby on Rail 基础知识 一张纸

    - `count`: 计算字符串中某个字符或子串出现的次数。 - `crypt`: 对字符串进行加密处理。 - `downcase!`: 将所有字符转换为小写。 - `dump`: 返回字符串的打印形式。 - `each`: 遍历字符串中的每个字符。 - `...

    java AES加密 解决加密过长非法异常问题

    - 对于过长的数据,可以将其分割成多个16字节的块分别加密,然后将结果合并。 - 使用填充策略,例如PKCS7,自动在数据末尾添加必要的字节以满足16字节的要求。 - 如果数据是字符串,确保在加密前正确地进行编码,如...

Global site tag (gtag.js) - Google Analytics