JAVA编程思想学习总结:第十三章字符串
2015-05-31 16:31
495 查看
这一章是我学习JAVA以来学习最快的一章。主要是很多地方和JS的字符串处理非常类似。
StringBuilder对象是可改变的,并且它的连接操作效率要优于String通过+与+=号,当有大量的这种操作时建议使用这个。
StringBuffer是线程安全的,因此开销会大些,其它类同StringBuilder。
有一点要注意的是:在其他语言中,\\表示我想要在正则表达式中插入一个普通的(字面上的)反斜线,请不要给它任何特殊的意义。而在java中,\\的意思是我要插入一个正则表达式的反斜线,其后的字符具有特殊的意义。
学习字符串与正则表达式相关的方法,学习Patten类,学习Matcher方法。
(1)String,StringBuilder,StringBuffer
String对象是不可变的,并且可以通过+与+=这两个重载过的操作符进行字符串的连接。如果只是少量的字符串操作建议使用这个。StringBuilder对象是可改变的,并且它的连接操作效率要优于String通过+与+=号,当有大量的这种操作时建议使用这个。
StringBuffer是线程安全的,因此开销会大些,其它类同StringBuilder。
import java.util.ArrayList; import java.util.List; public class InfiniteRecursion { public String toString(){ //return " InfiniteRecursion address: "+this+"\n";//此处this的调用会导致该函数不断递归调用,因此程序报错 return " InfiniteRecursion address: "+super.toString()+"\n"; } public static void main(String[] args){ List<InfiniteRecursion> v=new ArrayList<InfiniteRecursion>(); for(int i=0;i<10;i++) v.add(new InfiniteRecursion()); System.out.println(v); } }在toString方法中应该避免使用this通过+或+=进行字符串的连接操作,这会导致toString函数的不断递归调用。
(2)格式化输出
学习Formatter类及它的相关方法的使用(非常类似C中的print函数)。(3)正则表达式
由于已经学习过JS的正则表达式了,学习java的正则表达并没有什么难度。有一点要注意的是:在其他语言中,\\表示我想要在正则表达式中插入一个普通的(字面上的)反斜线,请不要给它任何特殊的意义。而在java中,\\的意思是我要插入一个正则表达式的反斜线,其后的字符具有特殊的意义。
学习字符串与正则表达式相关的方法,学习Patten类,学习Matcher方法。
(4)扫描输入
学习Scanner类,该对象与正则表达式相关的方法。相关文章推荐
- java 打包 编译
- JAVA 单例设计模式
- 疯狂Java学习笔记(63)-----------线程进阶
- Hadoop学习笔记(六)---HDFS java接口
- java中的“委托”
- 【java web】--html、xml竞争还是合作?
- java动态代理和静态代理
- java多线程(三)、线程的生命周期(状态)和线程的操作
- Java内部类
- Java基础之集合框架详解(二)List篇
- JAVA设计模式--Strategy
- JAVA 对象初始化的过程
- Java Log 系统介绍以及切换
- Java中的反射及Bean容器的实现
- Java笔记--泛型
- Merge Sort的java语言实现
- Struts2中获取请求参数
- java final域
- Java的引用类型(附图说明)
- Java笔记--集合