奇怪的bug

奇怪的bug 合集

1.不可见字符集问题

起因是在自己做小项目的时候,通过lombok的@data注解,默认生成实体类的get set方法
但是在某个方法中获取一个属性值的时候显示找不到该属性值的get方法,具体直接贴图

在这里插入图片描述
在这里插入图片描述

我以为是lombok的配置问题,或者是idea的缓存问题,但是…通过一系列的排查,清缓存,还是报错…
后面我有单独的获取了一下,但是能获取到 ,王德法???一脸问号脸的我???

在这里插入图片描述

于是我猜想:这两个玩意儿不能不一样吧???原模原样复制,写个main测试一下

public static void main(String[] args) {


        String s = "app.getАррTуре()";
        String s1 = "app.getAppType()";

        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == s1.charAt(i)) {
                System.out.println("s:" + s.charAt(i) + " s1:" + s1.charAt(i) + " 相等");
            } else {
                System.out.println("s:" + s.charAt(i) + " s1:" + s1.charAt(i) + " 不相等");
            }
        }
    }

但是结果却运行出来这么个玩意儿,同样让我震惊??,确实不一样… 持续懵逼中…
s:a s1:a
s:p s1:p
s:p s1:p
s:. s1:.
s:g s1:g
s:e s1:e
s:t s1:t
s:А s1:A 不相等
s:р s1:p 不相等
s:р s1:p 不相等
s:T s1:T
s:у s1:y 不相等
s:р s1:p 不相等
s:е s1:e 不相等
s:( s1:(
s:) s1:)

什么A != A??
百度了一圈
大概是这个原因:

代码中,字符串 s 和 s1 看起来在大多数位置上是相似的,但有一个重要的区别:s 字符串中包含了一些非ASCII字符(在这种情况下是俄文字符 “Арр”),而 s1 则只包含ASCII字符。
比较这两个字符串中的字符时,即使它们在视觉上可能看起来相似(比如您的 “A” 和 “А”),但它们在计算机中的表示是完全不同的。ASCII字符集主要用于表示英文字母、数字和一些标点符号,它只定义了从0到127的字符代码。而 “А” 是一个Unicode字符,它在Unicode字符集中的位置与ASCII中的 “A” 不同。
在Java中,char 数据类型用于存储Unicode字符,因此 “A” 和 “А” 被视为两个不同的字符,即使它们在视觉上可能相似。
对于索引位置0、1和2(即 “app” 部分),两个字符串的字符是相同的,因此会输出 “相等”。但是,当您到达索引位置3时,s 中的字符是 “А”(Unicode中的某个值),而 s1 中的字符是 “g”(ASCII值为103)。由于这两个字符在Unicode中的值不同,因此输出将是 “不相等”。

继续看了看 改吧改吧

public static void main(String[] args) {


        String s = "app.getАррTуре()";
        String s1 = "app.getAppType()";

        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == s1.charAt(i)) {
                System.out.println("s:" + s.charAt(i) + " s1:" + s1.charAt(i) + " 相等");
            } else {
                System.out.println("s:" + s + " (" + (int) s.charAt(i) + ") s1:" + s1 + " (" + (int) s1.charAt(i) + ") 不相等(Unicode值不同)");
                System.out.println("s:" + s.charAt(i) + " s1:" + s1.charAt(i) + " 不相等");
            }
        }
    }

输出:

s:a s1:a 相等
s:p s1:p 相等
s:p s1:p 相等
s:. s1:. 相等
s:g s1:g 相等
s:e s1:e 相等
s:t s1:t 相等
s:app.getАррTуре() (1040) s1:app.getAppType() (65) 不相等(Unicode值不同)
s:А s1:A 不相等
s:app.getАррTуре() (1088) s1:app.getAppType() (112) 不相等(Unicode值不同)
s:р s1:p 不相等
s:app.getАррTуре() (1088) s1:app.getAppType() (112) 不相等(Unicode值不同)
s:р s1:p 不相等
s:T s1:T 相等
s:app.getАррTуре() (1091) s1:app.getAppType() (121) 不相等(Unicode值不同)
s:у s1:y 不相等
s:app.getАррTуре() (1088) s1:app.getAppType() (112) 不相等(Unicode值不同)
s:р s1:p 不相等
s:app.getАррTуре() (1077) s1:app.getAppType() (101) 不相等(Unicode值不同)
s:е s1:e 不相等
s:( s1:( 相等
s:) s1:) 相等

可见,代码中有脏东西… 至此 该bug 修复…

相关推荐

  1. 一个奇怪问题和奇怪解决方案

    2024-06-14 06:16:03       49 阅读
  2. img标签奇怪问题

    2024-06-14 06:16:03       32 阅读
  3. 奇怪汉诺塔

    2024-06-14 06:16:03       11 阅读
  4. 蓝桥杯---奇怪数列

    2024-06-14 06:16:03       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 06:16:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 06:16:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 06:16:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 06:16:03       18 阅读

热门阅读

  1. pg和oracle的区别

    2024-06-14 06:16:03       7 阅读
  2. 常见NI板卡

    2024-06-14 06:16:03       9 阅读
  3. 数据库select语句基础

    2024-06-14 06:16:03       7 阅读
  4. 软考初级网络管理员_08_网络单选题

    2024-06-14 06:16:03       7 阅读
  5. QT--DAY1

    QT--DAY1

    2024-06-14 06:16:03      7 阅读
  6. Python学习笔记12 -- 有关布尔值的详细说明

    2024-06-14 06:16:03       7 阅读
  7. 什么是jQuery

    2024-06-14 06:16:03       7 阅读
  8. 牛客周赛 Round 46 题解 C++

    2024-06-14 06:16:03       4 阅读
  9. 【华为OD题库C卷-001】山脉的个数

    2024-06-14 06:16:03       6 阅读
  10. vue脚手架 笔记03

    2024-06-14 06:16:03       5 阅读
  11. vue基础P7-17

    2024-06-14 06:16:03       5 阅读
  12. Spring-web-HttpServletRequest

    2024-06-14 06:16:03       7 阅读
  13. 找出Python潜在的编程问题

    2024-06-14 06:16:03       7 阅读
  14. 源码编译安装LAMP

    2024-06-14 06:16:03       5 阅读
  15. 优化上一篇的博客:实现一人一单功能

    2024-06-14 06:16:03       6 阅读
  16. 使用Node.js+Express开发简单接口

    2024-06-14 06:16:03       7 阅读