Java处理不可见特殊字符要点解析

  • 时间:
  • 2378人关注

这篇文章主要介绍了Java处理不可见特殊字符要点解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下,另外这篇文章主要知识点是关于Java、处理、不可见、特殊、字符、Java的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

看下图所示,两个空字符串不相等

因为str中有不可兼得特殊字符,可以在debug中将str的值复制出来,然后粘贴到双引号中们就可以看到这个字符的真面目,如下图所示:

\uFEFF为控制字符,名为"零宽不折行空格(Zero Width No-Break Space)",此外,类似的不可见字符还有\u202A(从左至右嵌入)、\u202E(从右至左强制)等控制字符

那我们事怎么遇到这些控制字符的呢?

在读取文件或者从某文件属性中直接复制路径经常会遇到这种问题

在开发中可以对获得的字符串进行以下处理,来删除这些控制字符:网上很多说使用正则\\p{Cntrl}进行替换,经过测试并不起作用,而是用朋友告诉我的\\p{C}

String str2 = str1.replaceAll("\\p{C}", "");

System.out.println("".equals(str2));

就是一些特殊的Unicode字符,如果不确定,可先判断长度是否一样:

推荐字符查询网址查询网址:

https://unicode-table.com/cn/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


上一篇:IntelliJ IDEA 打包代码报错的问题

下一篇:Java数据类型及类型转换的互相转换实例代码

相关内容

  • 如何用Java实现将容器 Map中的内容保存到数组

    这篇文章主要介绍了Java实现将容器 Map中的内容保存到数组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    05-03Java Map内容保存数组

    阅读更多
  • Java数据类型及类型转换的互相转换实例代码

    这篇文章主要介绍了Java 数据类型及类型转换的互相转换实例代码,需要的朋友可以参考下

    05-09java数据类型互相转换

    阅读更多
  • 如何让java程序运行

    04-29java程序运行

    阅读更多
  • java是如何输出的

    04-29java输出的方式

    阅读更多
  • java如何调用接口

    其实对于java调用接口进行获取对方服务器的数据在开发中特别常见,然而一些常用的基础的知识总是掌握不牢,让人容易忘记,写下来闲的时候看看,比回想总会好一些。 总体而言,一些东西知识点一直复制粘贴容易依赖,重要的是会忘记为什么这么写,只有理解到位,或者八九不离十才可以对于随时变化的情况进行分析,如果到家,还可以对别人或自己的进行优化。 如果你在这篇没有找到你想要的,请点击:java如何调用接口方式二 而对于一些知识

    04-27java调用接口的方法

    阅读更多
  • Java编程思想(第4版)

    Java编程思想(第4版)

    《 计算机科学丛书:Java编程思想(第4版) 》获得了全世界程序猿的普遍称赞,即便是枯燥的定义,在BruceEckel的文本感染力和小而立即的程序编写实例眼前也会解决于无形中。从Java的基本英

    大小:86.6 MBJava编程

    点击下载
  • Java jdk14 API官方帮助文档

    Java jdk14 API官方帮助文档

    Java14 文档,记录Java14语言中的类、方法、接口信息。目前官方最新版本jdk14,这里提供Java14 API官方文档官方英文版,需要的朋友可下载试试! 3月17日JDK 14 正式发布了,此版本包含的 JEP(Java/JDK Enhancement Proposals,JDK 增强提案)比 Java 12 和 13 加起来的还要多。 总共 16 个新特性如下: 305:Pattern Matching for instanceof (Preview) 为 instanceof 运算符引入模式

    大小:7.8 MBJava

    点击下载
  • Java核心技术卷Ⅰ:基础知识(第8版)

    Java核心技术卷Ⅰ:基础知识(第8版)

    Java核心技术(原书第8版) Java核心技术卷Ⅰ:基础知识 作者:(美)昊斯特曼著,叶乃文,邝劲筠,杜永萍译 出版时间:2008-6-1 丛编项:SUN公司核心技术丛书

    大小:258.92MBJava

    点击下载
  • 疯狂Java讲义精粹(第2版)

    疯狂Java讲义精粹(第2版)

    本书以疯狂Java讲义(第2版)为蓝本,覆盖Java 8全新特性,大部分示例程序都采用Lambda表达式、流式API进行了改写,海量面试题及答案,数百个书中实例及详实课件,适合各种层次的Java学习者和

    大小:120.2 MBJava

    点击下载

学习笔记

8小时52分钟前回答

Java利用StringBuffer替换特殊字符的方法实现

在本实例中为保证学生输入的 Java 文件名合格,将利用 StringBuffer 类实现对 Java 文件名中的特殊符号进行替换,包括将中文状态下的“。”和全角状态下的“.”替换为英文状态下的“.”。 在本例实现过程中主要使用了 StringBuffer 类的字符查找和替换方法,实现代码如下: import java.util.Scanner;public class test2 { public static void main(String[] args) { System.out.println("请输入你要提交的Java文件名称:"); Scanner input = new Scanner(System.in); String fileName = input.next(); // 获取用户输入的 java 文件名称 // 定义StringBuffer对象,字符串内容为用户输入的java文件名称 StringBuffer file = new StringBuffer(fileName); // 获取英文状态下的"."是否存在 i……

31小时25分钟前回答

JavaScript中一些特殊的字符运算

1.什么是 -- ? 这两个分开是很简单的两个运算符,比如--,一般表示自减, var i = 5;while(i){console.log(i--);} ,会打印出5,4,3,2,1; 那么这两个结合起来呢? 在c中 --表示的是趋向于,也就是说 -- 0 表示的是趋向于0. #include stdio.hint main(){ int x = 10; while (x -- 0) // x goes to 0 { printf("%d ", x); }} 那么它在javascript中是否同样起效? var n = 5;while (n -- 0){ console.log(n);} 在Chrome的控制台运行之后的效果是这样的 也就是说--这个箭头函数(此箭头函数非彼箭头函数=)同样适用于javascript,大家有没有觉得这个箭头函数很眼熟 script language="javascript" !-- document.bgColor = "brown"; // red // -- /script 箭头符号在 JavaScript 诞生时就已经存在,当……