常见的转义字符

转移字符对应的英文是escape character  , 转义字符串(Escape Sequence)

字母前面加上捺斜线"\"来表示常见的那些不能显示的ASCII字符.称为转义字符.如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

所有的转义字符和所对应的意义:

转义字符

意义

ASCII码值(十进制)

\b

退格(BS) ,将当前位置移到前一列

008

\f

换页(FF),将当前位置移到下页开头

012

\n

换行(LF) ,将当前位置移到下一行开头

010

\r

回车(CR) ,将当前位置移到本行开头

013

\t

水平制表(HT) (跳到下一个TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一个反斜线字符''\'

092

\'

代表一个单引号(撇号)字符

039

\"

代表一个双引号字符

034

\0

空字符(NULL)

000

\ddd

1到3位八进制数所代表的任意字符

三位八进制

\uhhhh

1到2位十六进制所代表的任意字符

二位十六进制

注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换

点的转义:. ==> u002E

美元符号的转义:$ ==> u0024

乘方符号的转义:^ ==> u005E

左大括号的转义:{ ==> u007B

左方括号的转义:[ ==> u005B

左圆括号的转义:( ==> u0028

竖线的转义:| ==> u007C

右圆括号的转义:) ==> u0029

星号的转义:* ==> u002A

加号的转义:+ ==> u002B

问号的转义:? ==> u003F

反斜杠的转义:==> u005C

所以\\|实际上还可以写成:\\u007C

常见用法

JSONObject使用时丢失转译字符

项目中遇到使用JSONObject丢失转译字符,特此记录下:

原String json 内容如下:

<

{

"paymentAuthMode":"2D",

"mcc":"5300",

"saveAsset":false,

"shipToStreetAddr1":"\\Mid State Sports , MS 39056 usa",

"payMode":"SALES",

"requestBaseAmount":{

"amount":3209.99,

"currency":{

"symbol":"USD",

"currencyCode":"USD",

"defaultFractionDigits":2,

"displayName":"美元",

"numericCode":840

},

"centFactor":100,

"currencyCode":"USD",

"cent":320999,

"currencyValue":"840"

}

}

>

放到“”中自动加了转译符,内容如下:

<

String json="\n"

+ "{\n"

+ " \n"

+ " \"paymentAuthMode\":\"2D\",\n"

+ " \"mcc\":\"5300\",\n"

+ " \"saveAsset\":false,\n"

+ " \"shipToStreetAddr1\":\"\\\\Mid State Sports , MS 39056 usa\",\n"

+ " \"payMode\":\"SALES\",\n"

+ " \"requestBaseAmount\":{\n"

+ " \"amount\":3209.99,\n"

+ " \"currency\":{\n"

+ " \"symbol\":\"USD\",\n"

+ " \"currencyCode\":\"USD\",\n"

+ " \"defaultFractionDigits\":2,\n"

+ " \"displayName\":\"美元\",\n"

+ " \"numericCode\":840\n"

+ " },\n"

+ " \"centFactor\":100,\n"

+ " \"currencyCode\":\"USD\",\n"

+ " \"cent\":320999,\n"

+ " \"currencyValue\":\"840\"\n"

+ " }\n"

+ "}";

JSONObject jsonObject = (JSONObject)JSONObject.parse(json);

System.out.println(jsonObject);

>

运行过程中debug得到JSONObject的值已少了一个\,被当作转译符处理,截图如下:

为了后续转译不出问题,必须要再调用toJSONString(),补齐丢失的\

另外如果要拼接\时要小心处理,以下这段代码拼接错误

原始内容为:"s":"\\ Mid State

<

String input = "\"s\":\"\\\\ Mid State";

int length = input.length();

StringBuilder result = new StringBuilder(length);

for (int i = 0; i < length; i++) {

char c = input.charAt(i);

System.out.println(c);

switch (c) {

case '\'': {

result.append("\\'");

break;

}

case '\"': {

result.append("\\\"");

break;

}

default: {

result.append(c);

break;

}

}

}

System.out.println(result.toString());

System.out.println(result.toString().toString());

>

运行结果均是:\"s\":\"\\ Mid State【丢失了两个\】

原因如下:

这里对\进行append,所以2个\变成了2个\,原计划是要变成4个\。

其他

String t = "a||b||c||d";

String[] temp = t.split("\\|\\|");

System.out.println(temp.length);

主要是:"\\|\\|" 代表什么意思?

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

如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");

如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");

“.”和“|”都是转义字符,必须得加"\\";

String sName = "Java转义字符(补遗)";

sName = sName.replaceFirst("\\(补遗\\)","");

System.out.println(sName);//Java转义字符

String t = "a|b|c|d";

String[] temp = t.split("\\u007C");

for (String a :temp){

System.out.print(a);//abcd

}

java 转义_JAVA的转义字符相关推荐

  1. java正则转义_Java 正则表达式 转义字符

    一.这篇文章写的很好,值得看看 两个重点: 1.两次转义 (1)Java 转义(具体规则待学习) Java 中的普通字符串,需要经过 Java 的转义 (2)正则转义(具体规则待学习) Java 代码 ...

  2. json java 转义_java解析json,带转义字符的json

    一:解析普通json 1:不带转化字符 格式{"type":"ONLINE_SHIPS","message":{"currentT ...

  3. c语言的%的转义吗,%20转义(C语言转义字符问题)

    java中什么是转义字符,为什么要使用转义 以"\"符号为例,JAVA中有很多操作,例如文件操作等,需要用到路径这个东西,比如:com\mypackage\xxx.xml,这个路径 ...

  4. c 字符串 html转义字符串,字符串转义字符

    转义字符是编程语言中表示字符的一种特殊形式.字符串转义字符是用来表示字符集中定义的字符,或者是某一些特定的字符在编辑语言中被定义为特殊用途的字符.一般用于表示不能直接显示的字符,比如后退键.回车键等, ...

  5. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  6. 20年java面试_Java 20年

    20年java面试 二十年前,在苏黎世的一间公寓里发生了两件事. 我的女儿迈出了第一步,一位年轻的博士后研究员(她的父亲)迈出了使用Java的第一步. 很难完全了解当时的Java. 在这些时代,TCL ...

  7. Java转义工具类StringEscapeUtils的学习笔记

    Java转义工具类StringEscapeUtils的学习笔记 前言 ​ 在java.commons.lang3 的包中有许多方便好用的工具类,类似于处理字符串的StringUtils,处理日期的Da ...

  8. java 实型常量_Java常量(七)

    所谓常量,我们可以理解为是一种特殊的变量,它的值被设定后,在程序的整个运行过程中不允许改变. (在这里要注意常量和常量值是不同的概念,常量值是常量的具体和直观的表现形式,常量是形式化的表现.通常在程序 ...

  9. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

最新文章

  1. TCP编程函数和步骤
  2. php session 为空,thinkphp无法登陆,session跨页后值为空
  3. 嵌套向量中断控制器NVIC和系统控制块SCB特性
  4. rust怎么传送坐标_德国人怎么学电机——浅谈电机模型(十一):异步电机:绕线转子电机(一)...
  5. java 将换行代替_Java批量将文件中的段落替换成空格,根据指定分隔符换行(SQL示例)...
  6. CNN图像分割简史:从R-CNN到Mask R-CNN(译)
  7. 赠书5本包邮:数据思维实践、Cloud Native分布式架构原理与实践
  8. 企业做网络推广关键词设置的几点个人看法
  9. 每位开发者都应了解的数据库一致性!
  10. VxRack与VxRail遭受Power的“全面入侵”
  11. java堆是gc管理_JVM内存管理及GC机制
  12. 《WinForm开发系列之控件篇》Item16 ErrorProvider
  13. 【MapGIS精品教程】001:MapGIS K9完整图文安装教程
  14. DirectX修复工具强力修复实验包
  15. 如何安装虚拟光驱大学计算机考试,用虚拟光驱安装win10专业版的方法
  16. Python爬虫入门教程【7】: 蜂鸟网图片爬取之二
  17. 看风云变幻,自云淡风轻
  18. ACM144-小柯的烦恼zy
  19. 变量、表达式与顺序语句
  20. 解决电脑开机后打印机会自动打印的问题

热门文章

  1. 日常工作实用同步FIFO(已Compile)
  2. Thread类的有关方法
  3. cmd中查看python安装路径
  4. VirtualBox与DockerToolBox使用轻量级Linux 系统Boot2Docker建立SSH连接
  5. java实现解压(zip和rar文件)实例-解决中文乱码问题
  6. 使用注解+反射实现List与树形结构的相互转换
  7. 搜索引擎收录站点信息
  8. 粤教版用计算机写作文教学设计,粤教版第7课 用计算机写 作文 教学设计
  9. 行为识别笔记:C3D network-用于视频特征提取的3维卷积网络
  10. 机房湿度过高怎么办?