易错java知识点总结(持续更新)
2015-04-01 18:27
531 查看
1.
2.java转义字符的理解
参考知乎大神:http://www.zhihu.com/question/29232624
正向和逆向处理转义字符
正向:把两个字符 \ n 识别为一个转义字符 new line
逆向:把一个字符 new line 识别为一个需要转义的字符,输出两个字符 \ n
结果是什么也没有显示
这样当然找不到任何转义字符,因为在在源码里的\n字面量(两个字符)都已经被编译器正向处理过一次变成了new line(一个LF字符),所以a里已经没有任何'\'字符了。
但测试不应该这么测。如果我们要写一个编译器,它通常要从源码文件读入原始文本。如果源码文件里出现了这样的字符串:
那我们要在一个小测试程序里模拟这个输入的话,应该写:
这样得到的字符串才跟源码文件里的原始文本一致。其实就是人肉逆向处理一次来对抗编译器做的那一次正向处理。
假设是逆向:
总共只有那么多个字符需要转义。查语言规范把所有需要转义的字符放进一个表里匹配一下就好。
结果显示为:
yes
yes
JAVA中转义字符:
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这八个字符,其余的都会报错,同时,注意与正则表达式的结合.其余就是处理正向和逆向处理转义字符了。
相关文章推荐
- java知识点总结(持续更新)
- [置顶] Android+Java知识点总结-持续更新中(为了更好的自己)
- java知识点总结,持续更新
- 我的JAVA学习笔记(记下一些容易忘记的知识点)持续更新
- java面试准备---JSF系统学习知识点总结---随时更新
- Java面试题总结2(持续更新)
- Android5.0系统 知识点总结(持续更新)
- Java常用方法总结(持续更新中)
- Java中常见问题总结------------持续更新
- iOS开发知识点总结【持续更新】
- java注解总结(持续更新...)
- js中一些小知识点总结--持续更新
- Android for myself新增知识点总结(保持持续更新)
- 零散知识点总结(持续更新……)
- android 音频技术知识点总结。持续更新中。。。
- java面试准备---JSF系统学习知识点总结---随时更新
- C C++ Java 区别性记忆总结【持续更新中】
- java JDBC 数据库之间的知识点,以后会持续更新记录
- java代码注意点总结(持续更新)
- JAVA 面向对象和集合知识点总结(6.15更新)