返回顶部
首页 > 资讯 > 后端开发 > JAVA >JAVA转义字符详解
  • 520
分享到

JAVA转义字符详解

javajvm开发语言 2023-09-01 18:09:19 520人浏览 八月长安
摘要

什么是转义字符? 转义字符一般用于表示不能直接显示的字符,比如后退键、回车键等,或者用来将特殊意义的字符转换回它原来的意义。 转义字符出现原因 其实所有编程语言,拥有转义字符的原因基本上是两点: 使用转义字符来表示字符集中定义的字符,比如A

什么是转义字符?

转义字符一般用于表示不能直接显示的字符,比如后退键、回车键等,或者用来将特殊意义的字符转换回它原来的意义。

转义字符出现原因

其实所有编程语言,拥有转义字符的原因基本上是两点:

使用转义字符来表示字符集中定义的字符,比如ASCll里面的控制字符及回车换行等字符,这些字符都没有现成的文字代号。所以只能用转义字符来表示 。

某一些特定的字符在编辑语言中被定义为特殊用途的字符。这些字符由于被定义为特殊用途,它们失去了原有的意义。比如说html中,<被HTML定义为标签的开始,所以当我们转入<时,HTML就会把它当作为开始,而不是当作一个<来看待。再如PHP 的双引号("),被php定义为字符串的外围标签,所以如果你在一对双引号里面,还想要使用双引号,只能使用转义字符了。不然PHP就会报错了。

转义字符的意义

从上面也可以看出转义无非是两种情况:

将普通字符转为特殊用途,一般是编程语言中,用于表示不能直接显示的字符,比如后退键,回车键等。

用来将特殊意义的字符转换回它原来的意义。一般用在正则表达式中。还有有些脚本语言是弱类型,有些语言比如html 并不是编程语言,而是标记语言,有些语言只有一种类型 比如shell 脚本语言,这些语言中字符串都不加引号” ” ,或者可以不加引号“ ”,所以有时候需要转移字符说明某字符此时的身份是普通字符,而不是有特殊意义的元字符。

另外出于网站的安全。在数据写入数据库前,都会使用转义字符(函数)对一些敏感字符进行转义。这样做可以避免一些别有用心的人利用特殊符号的注入攻击。


JAVA中反斜杠“\”的作用

VBS代码中确实不用转义,但是在JAVA或js中,它采用的是C语言的语法,所以要转义,引号内要双写\\表示一个反\


split("\\.")什么意思

首先要明白split方法的参数含义:
public String[] split(String regex)根据给定的正则表达来式的匹配来拆分此字符串

然后就要明确正则表达式的含义了:

'\'表示转义字符

\\会转义成反斜杠,反斜杠本身就是转义符,所有就成了“\.”,在进行转义就是.,所以\\.实际上是“.”


正则表达式

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

许多程序设专计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由属Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。


Java中repalceAll方法解析

现有一个字符串str

String str="{\\\"name\\\":\\\"spy\\\",\\\"id\\\":\\\"123456\\\"}";System.out.println("str = " + str);

在控制台的输出为:

str = {\"name\":\"spy\",\"id\":\"123456\"}

目标str1

str1 = {"name":"spy","id":"123456"}

方法

1. 使用 StringEscapeUtils中的转义与反转义

apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils。利用它可方便地进行html、xml、java等的转义与反转义。

String str="{\\\"name\\\":\\\"spy\\\",\\\"id\\\":\\\"123456\\\"}";System.out.println("str = " + str);String str1 = StringEscapeUtils.unescapeJava(str);System.out.println("目标 str1 = " + str1);//对应方法的StringEscapeUtils.escapeJava(str1);//可将str1转义回str

控制台输出:

原始 str = {\"name\":\"spy\",\"id\":\"123456\"}目标 str1 = {"name":"spy","id":"123456"}

2. 使用Java的replaceAll方法

String str1 = str.replaceAll("\\\\","");//控制台str1的输出为:{"name":"spy","id":"123456"}

3、Java 的replaceAll 内涵解析

使用Java的replaceAll(String regex, String replacement)函数,即用replacement替换所有的regex匹配项,regex是一个正则表达式,replacement是字符串。

String str="{\\\"name\\\":\\\"spy\\\",\\\"id\\\":\\\"123456\\\"}";

(1)对于串str,Java将其进行转义,\\ 表示 \ ,\” 表示 ” ,故而在Java内存中即为:
{\”name\”:\”spy\”,\”id\”:\”123456\”},然而,我们的目标是 {“name”:”spy”,”id”:”123456”},即将转义字符 \ 替换为空。

(2)Java的replaceAll(String regex, String replacement)函数,第一个参数是一个正则表达式。在正则表达式中的“\”与后面紧跟的那个字符构成一个转义字符,代表着特殊的意义,比如”\n”表示换行符等。所以,如果要在正则表达式中表示一个反斜杠\,则应当用\\表达 。但参数regex 首先会经过Java的一次转义,若想表达两个反斜杠 \\,则需四个反斜杠。

综上所述:replaceAll 的第一个参数是正则表达式,故而要经过两次转义,一次Java、一次正则。因此就需要四个反斜杠才可以匹配一个反斜杠。故而,替换一个反斜杠为空的replaceAll的代码即为:

str1 = str.replaceAll("\\\\","");

来源地址:https://blog.csdn.net/bbj12345678/article/details/128836404

--结束END--

本文标题: JAVA转义字符详解

本文链接: https://lsjlt.com/news/389290.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JAVA转义字符详解
    什么是转义字符 转义字符一般用于表示不能直接显示的字符,比如后退键、回车键等,或者用来将特殊意义的字符转换回它原来的意义。 转义字符出现原因 其实所有编程语言,拥有转义字符的原因基本上是两点: 使用转义字符来表示字符集中定义的字符,比如AS...
    99+
    2023-09-01
    java jvm 开发语言
  • C语言转义字符详解
    ####1.认识转义字符 所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n...
    99+
    2024-04-02
  • Java常用转义字符
    Java常用的转义字符 1)\t:一个制表位,实现对齐的功能 2)\n换行符 3)\:一个\ (第一个\表示转义,第二个\表示输出的字符) \\: 输出两个\(第一个\表示转义,第二个\表示输出的...
    99+
    2023-09-13
    java
  • java中字符串如何去掉转义字符
    第一步:添加依赖   org.apache.commons commons-text 1.1 第二步:利用工具类进行处理 处理代码: String str = "{\\\"name\\\":\\\"xiaoxu\\\"...
    99+
    2023-08-31
    java mybatis 开发语言
  • Python 转义字符详细介绍
    Python 转义字符 在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表: 原始字符串 有时我们并不想让转义字符生效,我们只想显示字符串原来的意思,这就要用r和R来定义原始字符串。如...
    99+
    2022-06-04
    详细介绍 字符 Python
  • java中的转义字符介绍
    java中的转义字符有四种: JAVA中转义字符: 1.八进制转义序列: + 1到3位5数字;范围'00'~'377':空字符 2.Unicode转义字符:u + 四个十六进制数字;...
    99+
    2022-11-15
    java 转义字符
  • C语言的变量与常量 字符字符串与转义字符详解
    目录一.变量1.1定义变量的方法1.2变量的分类1.3变量的使用二.常量2.1字面常量 2.2 const修饰的常变量 2.3#define定义的标识符常量2.4...
    99+
    2024-04-02
  • Python 转义字符
    \' 单引号\" 双引号\t 制表符\n 换行符\ 倒斜杠...
    99+
    2023-01-31
    字符 Python
  • Python转义字符
    Python格式化字符串的替代符以及含义    符   号    说     明      %c 格式化字符及其ASCII码      %s 格式化字符串      %d 格式化整数      %u 格式化无符号整型      %o 格式化...
    99+
    2023-01-31
    字符 Python
  • python处理html转义字符的方法详解
    本文实例讲述了python处理html转义字符的方法。分享给大家供大家参考,具体如下: 最近在用Python处理网页数据时,经常遇到一些html转义字符(也叫html字符实体),例如<> 等。字...
    99+
    2022-06-04
    详解 字符 方法
  • Python字符串的转义字符
    目录什么是转义字符Python中的转义字符们转义无效符什么是转义字符 转义字符是指,用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“...
    99+
    2024-04-02
  • Python转义字符空格字符
    在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表: 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n...
    99+
    2023-01-31
    字符 空格 Python
  • python 不转义:含有转义字符\的字
    在字符串前加上r e.g. r'E:\learngit\face_recognition\faceRecognition\pictures\source_dj' ...
    99+
    2023-01-31
    字符 python
  • java怎么防止字符串转义
    在Java中,可以使用双引号来创建一个字符串字面量。如果想要在字符串中包含特殊字符(如双引号、反斜杠等),可以使用转义字符来防止字符...
    99+
    2024-02-29
    java
  • php7 字符串 转义
    在PHP编程中,字符串是常见的数据类型之一。我们经常需要进行字符串的转义操作,以确保代码能够正常地运行并避免潜在的安全风险。随着PHP版本的不断更新,字符串转义也有了一些变化。本文将介绍PHP7中的字符串转义操作。一、转义字符在PHP中,转...
    99+
    2023-05-24
  • java转义字符的作用是什么
    今天就跟大家聊聊有关java转义字符的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、概念在java中有一些字符具有特殊作用,如果想要表示这个字符本身,不想要表示特殊的作...
    99+
    2023-06-15
  • java需要转义的字符有哪些
    在Java中,以下字符需要使用转义序列来表示:1. 双引号("):\"2. 单引号('):\'3. 反斜杠(\):\\4. 退格符(...
    99+
    2023-08-11
    java
  • java怎么去掉json的转义字符
    在Java中,可以使用org.json库中的JSONObject类来处理JSON数据,并且它会自动转义特殊字符。如果要去掉JSON数...
    99+
    2024-02-29
    java json
  • 如何理解MySQL的转义字符
    今天就跟大家聊聊有关如何理解MySQL的转义字符,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 MySQL的转义字符“...
    99+
    2024-04-02
  • python格式化字符及转义字符
                     Python格式化字符串的替代符以及含义    符   号    说     明      %c 格式化字符及其ASCII码      %s 格式化字符串      %d 格式化整数      %u 格式化...
    99+
    2023-01-31
    字符 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作