JAVA转义字符详解

这篇具有很好参考价值的文章主要介绍了JAVA转义字符详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是转义字符?

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

转义字符出现原因

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

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

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

转义字符的意义

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

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

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

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

JAVA转义字符详解


JAVA中反斜杠“\”的作用

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


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

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

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

'\'表示转义字符

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


正则表达式

正则表达式,又称规则表达式。(英语: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的代码即为:文章来源地址https://www.toymoban.com/news/detail-439965.html

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

到了这里,关于JAVA转义字符详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java一般用于postgis空间数据库通用的增删查改sql命令

    Java一般用于postgis空间数据库通用的增删查改sql命令

    目录 1 增加 2 删除 3 查询 4 更新 \\\"public\\\".\\\"JGSQGW_Geo\\\"为某模式下得表  一般postgrel有这样的设计模式

    2024年02月13日
    浏览(11)
  • 转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\‘,\“,\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

    转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\‘,\“,\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

    系统是64位Windows,编译器是MinGW64,不同的设备可能会有不一样结果,大家可以自己去试试看; 1、转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单引号( \\\'); 2、转义字符是一

    2024年02月07日
    浏览(6)
  • Python语言转义字符简介

    Python语言转义字符简介

    Python语言转义字符简介 转义字符(Escape Character)即标志着转义序列(escape sequence)开始的那个字符。 一些程序设计语言中就规定了一个用于转义的字符 ,它后面的字符不能按照这些字符的字面意义解释——转义字符开头的该字符序列具有不同于该字符序列单独出现(没有

    2023年04月18日
    浏览(11)
  • C# 转义字符

    C# 转义字符

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:C# 转义字符 转义字符 是一种字符,用来表示那些带有特殊含义的字

    2023年04月09日
    浏览(10)
  • C语言——转义字符

    C语言——转义字符

    ​ 转义字符(Escape character),所有的ASCII码都可以用“”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加\\\"\\\"来表示常见的那些不能显示的ASCII字符,如\\0,t,n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。 转义字符 释义 ? 在书写连续

    2023年04月09日
    浏览(10)
  • c语言转义字符例子

    #include stdio.h #include string.h /* utf-8 */ #define UTF_V        \\\"342224202\\\"         /* U+2502, Vertical line drawing char */ #define UTF_VR        \\\"342224234\\\"        /* U+251C, Vertical and right */ #define UTF_H        \\\"342224200\\\"         /* U+2500, Horizontal */ #define UTF_UR        \\\"342224

    2024年02月09日
    浏览(10)
  • C 语言的转义字符

    C 语言的转义字符

    转义字符也叫转移序列,包含如下: 转移序列 \\0oo 和 xhh 是 ASCII 码的特殊表示。 八进制数示例: 代码: 结果: 电脑响了一声。 \\\'\\007\\\' 中的 0 可以省略一个或多个,或全部省略。代码示例: 结果一样,还是电脑响了一声。 如果电脑没有可以发出蜂鸣的硬件,则该程序不会有

    2024年02月14日
    浏览(10)
  • xml中的转义字符

    转义的实体引用虽然简单易用,但是需要记忆,而且如果字符串中包含大量的特殊字符,还需要进行逐一替换,比较麻烦,xml中还提供了CDATA标记来标识文件数据,当XML解析器处理到CDATA标记时,它不会解析该段数据中的任何符号或标记,只是将原数据原封不动地传递给应用程

    2024年02月15日
    浏览(9)
  • 【Python05】Python转义字符

    【Python05】Python转义字符

    1. 转义字符的定义: 由反斜杠加上一个字符或数字组成,它把反斜杠后面的字符或数字转换成特定的意义。 2. 一般转义字符有: n 代表换行符;t 代表横向跳格;\\\\ 代表反斜杠;\\\" 代表双引号;\\\' 代表单引号;r代表回车;b代表退格 3. 题目: 请各位读者在草稿纸上写写下

    2023年04月08日
    浏览(6)
  • 【C语言】转义字符+结构语句

    【C语言】转义字符+结构语句

    一,什么是转义字符 1.1转义字符的重要性?  二,了解一下转义字符有那些 三,精讲转义字符 3.1转义字符n 3.2转义字符?  3.3转义字符 ‘和\\\"  3.3转义字符 \\\\  3.4转义字符 a,r,n  3.5转义字符 b 3.6转义字符 f和v 3.7转义字符 t  3.8转义字符ddd   3.9转义字符xdd 四,

    2024年02月15日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包