博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
易错java知识点总结(持续更新)
阅读量:4967 次
发布时间:2019-06-12

本文共 1351 字,大约阅读时间需要 4 分钟。

1.

2.java转义字符的理解

参考知乎大神:http://www.zhihu.com/question/29232624

正向和逆向处理转义字符

正向:把两个字符 \ n 识别为一个转义字符 new line

逆向:把一个字符 new line 识别为一个需要转义的字符,输出两个字符 \ n

package 转义zifu;public class a {    public static void main(String[] args) {        String b = "test line 1\ntest line 2\ntest line 3";        char[] c;        c=b.toCharArray();        for (int i = 0; i < c.length; i++) {          if (c[i] == '\\')               System.out.println("yes");        }    }}

结果是什么也没有显示

这样当然找不到任何转义字符,因为在在源码里的\n字面量(两个字符)都已经被编译器正向处理过一次变成了new line(一个LF字符),所以a里已经没有任何'\'字符了。

但测试不应该这么测。如果我们要写一个编译器,它通常要从源码文件读入原始文本。如果源码文件里出现了这样的字符串:

test line 1\ntest line 2\ntest line 3

那我们要在一个小测试程序里模拟这个输入的话,应该写:

"test line 1\\ntest line 2\\ntest line 3"

这样得到的字符串才跟源码文件里的原始文本一致。其实就是人肉逆向处理一次来对抗编译器做的那一次正向处理。

假设是逆向:

总共只有那么多个字符需要转义。查语言规范把所有需要转义的字符放进一个表里匹配一下就好。

package 转义zifu;public class a {    public static void main(String[] args) {        String b = "test line 1\\ntest line 2\\ntest line 3";        char[] c;        c=b.toCharArray();        for (int i = 0; i < c.length; i++) {          if (c[i] == '\\')               System.out.println("yes");        }    }}

结果显示为:

yes

yes

JAVA中转义字符: 
1.特殊字符:就3个 
      \":双引号 
     \':单引号 
     \\:反斜线 
2.控制字符:5个 
\r 回车 
\n 换行 
\f 走纸换页 
\t 横向跳格 
\b 退格 

说白了,在java中\后面只能跟\'"bntfr这八个字符,其余的都会报错,同时,注意与正则表达式的结合.其余就是处理正向和逆向处理转义字符了。

转载于:https://www.cnblogs.com/liujunming/p/4384715.html

你可能感兴趣的文章
ss清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?
查看>>
phpQuery—基于jQuery的PHP实现
查看>>
C# 队列(Queue) 和堆栈(Stack)
查看>>
线性表
查看>>
开通博客
查看>>
【排障】Outlook Express 2G收件箱大小限制
查看>>
HyperLedger Fabric ca 1.2 正式环境部署
查看>>
编译链接过程总结
查看>>
数学图形(1.11) 玫瑰线
查看>>
python类中super()和__init__()的关系【复习】
查看>>
工厂方法模式(Factory Method Pattern)
查看>>
15:element/Vue Admin
查看>>
NOIP2007统计数字
查看>>
python中的单例设计模式
查看>>
socket套接字编程
查看>>
Daily Scrum 10.21
查看>>
【知识点】Filter、Servlet、Listener区别与联系
查看>>
keyboard scan code 表
查看>>
How to Build Aggregate/Composite Components in Delphi
查看>>
NT系统下木马进程的隐藏与检测
查看>>