奇怪的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 修复…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/702116.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv--使用opencv实现旋转角度的模板匹配

下面的例子是简单的使用opencv 实现的模板匹配流程&#xff0c;其中时间性能和精确度还需要调整&#xff0c;如果直接使用会出问题&#xff0c;所以这个只是例子&#xff0c;根据代码原理可以实现尺度变化的模板匹配和旋转尺度变化同时&#xff0c;具体根据实现的旋转代码进一步…

手持式凝血分析仪条码二维码高效读取解决方案

在医疗行业中&#xff0c;凝血分析仪是一种关键设备&#xff0c;主要用于快速、准确地检测血液凝固功能&#xff0c;同时不需要复杂的样品制备&#xff0c;并且可以在几分钟内获得患者的凝血功能信息&#xff0c;对疾病的诊断和治疗具有重要意义。医疗技术和科技的飞速发展&…

三篇卫星切换的论文

目录 一、Energy-Aware Satellite Handover based on Deep Reinforcement Learning 1、题目翻译 2、来源 3、内容 二、A Reliable Handover Strategy with Second Satellite Selection in LEO Satellite Networks 1、题目翻译 2、来源 3、内容 三、User Grouping-Based…

揭秘:义乌理阳的跨境选品师项目

在全球经济一体化的今天&#xff0c;跨境电商已成为各国贸易的重要组成部分&#xff0c;而选品师作为其中的关键角色&#xff0c;扮演着挑选优质商品的重要角色。在中国义乌&#xff0c;一家名为理阳信息咨询服务有限公司备受关注&#xff0c;因其据称拥有跨境选品师项目而备受…

Qt-Advanced-Docking-System的学习

Qt5.12实现Visual Studio 2019 拖拽式Dock面板-Qt-Advanced-Docking-System_c_saide6000-GitCode 开源社区 (csdn.net) 我使用的是Qt5.5.0 开始&#xff0c;我下载的是最新版的源码&#xff1a;4.1版本 但是&#xff0c;打开ads.pro工程文件&#xff0c;无法编译成功。 然后…

从深度嵌套的JSON结构中提取值

问题背景 在某些情况下&#xff0c;我们可能需要从深度嵌套的JSON结构中提取值。例如&#xff0c;给定以下JSON结构&#xff1a; {"foo_code": 404,"foo_rbody": {"query": {"info": {"acme_no": "444444","…

【云原生】Kubernetes----Helm包管理器

目录 引言 一、Helm概述 1.Helm价值概述 2.Helm的基本概念 3.Helm名词介绍 二、安装Helm 1.下载二进制包 2.部署Helm环境 3.添加补全信息 三、使用Helm部署服务 1.创建chart 2.查看文件信息 3.安装chart 4.卸载chart 5.自定义chart服务部署 6.版本升级 7.版本…

如何舒适的使用VScode

安装好VScode后通常会很不好用&#xff0c;以下配置可以让你的VScode变得好用许多。 VScode的配置流程 1、设置VScode中文2、下载C/C拓展&#xff0c;使代码可以跳转3、更改编码格式4、设置滚轮缩放5、设置字体6、设置保存自动改变格式7、vscode设置快捷代码 1、设置VScode中文…

UE4/UE5像素流送云推流|程序不稳定、弱网画面糊怎么办?

看到不少反馈说像素流送技术在实际的应用中&#xff0c;存在一些问题&#xff0c;比如程序崩溃、画面模糊等。本文将探讨这些问题&#xff0c;并介绍点量云流软件提供了哪些有效的解决方案。 常见的像素流送技术问题 画面质量问题&#xff1a; 当快速操作UE模型或初次启动像素…

关闭windows11的Defender病毒防护

windows11自带的Defender病毒防护并不是每个人都需要&#xff0c;有些人需要关掉它。网上一搜&#xff0c;出现的都在说在安全中心关闭&#xff0c;但这样关闭后依旧随时都在防护着&#xff0c;有些小软件一运行就会给删掉。 以下的方法也是在网上搜索的&#xff0c;但行之有效…

创建节约机关怎样向媒体投稿报道宣传?

创建节约机关并向媒体投稿报道宣传是一项重要的工作&#xff0c;它不仅能够提升机关的形象&#xff0c;还能促进社会各界对节约型社会的认识和支持。 作为一名新晋信息宣传员,初入职场的我满腔热血,怀揣着用文字传递价值的理想,却在投稿的道路上屡遭波折。面对每月的宣传任务,我…

Seal^_^【送书活动第6期】——《Docker快速入门》

Seal^_^【送书活动第6期】——《Docker快速入门》 一、参与方式二、本期推荐图书2.1 作者荐语2.2 编辑推荐2.3 图书简介2.4 前 言2.5 目 录 三、正版购买 从Docker Desktop入手&#xff0c;快速掌握容器技术&#xff01;&#xff01;&#xff01;&#xff01; 一、参与方式 1、…

如何用Vue3打造一个交互式3D产品展示

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Vue.js 的交互式产品卡片组件 应用场景 该代码组件旨在为电子商务网站和在线商店创建交互式且信息丰富的产品卡片。它提供了一种展示产品信息、价格和购买选项的现代且引人注目的方式。 基本功能 该组…

python3的基本语法说明一

一. 简介 本文开始学习 python3 的基本语法。 二. python3的基本语法 1. 编码 默认情况下&#xff0c;Python 3 源码文件以 UTF-8 编码&#xff0c;所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码&#xff1a; # -*- coding: cp-1252 -*- 上述…

vxeTable怎么导出excel文件

文章目录 一、代码示例二、调用导出事件参数详解下载引用 三、过滤某列数据导出 一、代码示例 <vxe-buttonclick"exportDataEvent"circleicon"vxe-icon-download">导出</vxe-button><vxe-tableborderroundstripeheight"auto"ref&…

AIGC绘画设计提示词篇:七大风格、直接可套用的MJ关键词模版

七大风格、直接可套用的MJ关键词模版 1、 具象描述基本结构&#xff08;词与词之间用英文逗号隔开&#xff09; 关键词框架1&#xff1a;主题/主体描述环境描述风格设定构图镜头设计图像属性&#xff08;渲染、质量、尺寸&#xff09; 关键词框架2&#xff1a;参考图主题/主体…

【CS.PL】Lua 编程之道: 控制结构 - 进度24%

3 初级阶段 —— 控制结构 文章目录 3 初级阶段 —— 控制结构3.1 条件语句&#xff1a;if、else、elseif3.2 循环语句&#xff1a;for、while、repeat-until3.2.1 输出所有的命令行参数3.2.2 while.lua3.2.3 repeat.lua及其作用域 &#x1f525;3.2.4 for.lua (For Statement)…

【网络编程】地址族与数据序列

IP是Internet Protocol简写&#xff0c;是为了收发网络数据而分配给计算机的值&#xff0c;端口号是为区分程序中创建的套接字而分配给套接字的序号。 网络地址分为两类&#xff1a;IPv4(4个字节地址族)&#xff0c;IPv6(6个字节地址族) 网络地址初始化&#xff0c;主要针对服…

微软Win11 22H2/23H2六月更新补丁KB5039212发布!附完整更新日志

系统之家于6月12日发出最新报道&#xff0c;微软向Win11用户推出六月更新补丁KB5039212&#xff0c;22H2版本号升为22621.3737&#xff0c;23H2版本号升为22631.3737。此次更新解决了可能导致系统无法从休眠状态恢复等问题。感兴趣的用户可以继续阅读以下内容&#xff0c;获取更…

训练大模型自动在RAG和记忆间选择

现如今&#xff0c;检索增强生成(Retrieval-augmented generation&#xff0c;RAG)管道已经能够使得大语言模型(Large Language Models&#xff0c;LLM)在其响应环节中&#xff0c;充分利用外部的信息源了。不过&#xff0c;由于RAG应用会针对发送给LLM的每个请求&#xff0c;都…