首页 > 其他分享 >空字符串判断空失败

空字符串判断空失败

时间:2022-11-18 10:25:32浏览次数:40  
标签:判断 String stringBuilder System println 失败 字符串 append out

起因是在处理文件的时候,想要自己存入一个固定长度头部,这里是1024个字节,在读取之后获取到一个看似字符串的对象,但是在判空时候失败了。

原因是这个看似为空字符串的对象内部char数组中有内容 \u0000,只是显示为空字符串。

image

Demo 以下为复现代码

public static void main(String[] args) {

        String path  = "D:/wbcData";

        //将一个字符串 写入到文件
        try(OutputStream outputStream = Files.newOutputStream(Paths.get(path))) {
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.append("1");
            stringBuilder.append(",");
            stringBuilder.append("2");
            stringBuilder.append(",");
            stringBuilder.append("3");
            stringBuilder.append(",");

            byte[] bytes1 = new byte[1024];
            byte[] bytes2 = stringBuilder.toString().getBytes();
            System.out.println(bytes2.length);

            for (int i = 0; i < bytes2.length; i++) {
                bytes1[i] = bytes2[i];
            }

            outputStream.write(bytes1,0,1024);
        }catch (Exception e){
            e.printStackTrace();
        }

        //再读取出来之后,分割得到的一个空字符 它不是空字符串
        try(InputStream inputStream = Files.newInputStream(Paths.get(path))) {
            byte[] head = new byte[1024];
            int read = inputStream.read(head);
            System.out.println(read);
            String s1 = new String(head);
            System.out.println(s1);
            String[] headList = s1.split(",");

            for (String s : headList) {
                System.out.println("本次循环的字符:【"+s+"】");
                System.out.println("本次循环的字符长度:【"+s.length()+"】");
                System.out.println(Integer.parseInt(s));
            }

        }catch (Exception e){
            e.printStackTrace();
        }

    }

自行记录一下bug

标签:判断,String,stringBuilder,System,println,失败,字符串,append,out
From: https://www.cnblogs.com/wangbingchen/p/16902319.html

相关文章

  • python笔记75-compile() 函数将字符串转字节代码
    前言compile()函数将一个字符串编译为字节代码。compile()使用以下是compile()方法的语法:compile(source,filename,mode[,flags[,dont_inherit]])参数so......
  • 【Python错误】TypeError: sequence item 0: expected str instance, int found【列表
    【错误类型】TypeError:sequenceitem0:expectedstrinstance,intfound前景提要:获得用户输入的以逗号分隔的三个数字,记为a、b、c,以a为起始值,b为前后相邻数的比值,c为......
  • 字符串练习1 于是他错误的点名开始了(Trie)
    题目链接在这里:P2580于是他错误的点名开始了-洛谷|计算机科学教育新生态(luogu.com.cn)是一道trie树的板子题,注意理解trie树的每一个节点代表的是一个状态,这个状态......
  • JAVA字符串应用
    字符串查找判断子字符串是否存在str.indexOf("B");实例运行点击查看代码publicclassstring7{ publicstaticvoidmain(String[]args){ Stringstr1="88......
  • 字符串和编码
    背景:日常工作中,或多或少的都会遇到编码问题,大都定义为UTF-8或者GB2312都能处理,但是总觉得一知半解,今稍微总结下白话理解:1.字符编码产生原因:在计算机底层存储中都是由......
  • 冒泡排序法2.0版本,加输入、输出数组字符串
    大家晚上好呀,今天给大家带来的是冒泡排序法的代码,首先我们以一些简单的数字来举例,根据昨天已有的知识点,我们可以利用二重循环写出基本代码,如图但是我这个有问题,但我目前还没......
  • 20221117-python-条件判断
    1.浅拷贝与深拷贝        2.分支语句   ......
  • vue 项目源码映射失败问题解决
    目录vue项目源码映射失败问题解决前言解决方案效果参考vue项目源码映射失败问题解决前言不知何时起,项目控制台调试进入源代码变成编译后的文件了,调试起来十分不便,强迫......
  • 整数bit 不同的判断方法
    问题:两个整数m和n的二进制表达,有多少bit不同?​​分析比较:使用异或操作符^,来判断m和n是否有bit相同。相同为0,相异为1。优势:方法2比起方法1无需循环32次,只需引入tmp作为临......
  • Java中的字符串
    String类声明字符串声明一个字符串就是创建一个字符串对象。语法Stringa;Stringa,b,c;注意Stringa;相当于Stringa=null;创建字符串给字符串赋值的方法:1.......