码迷,mamicode.com
首页 > 其他好文 > 详细

字符串

时间:2017-09-21 13:27:48      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:匹配   string   内容   方法   换行符   自动   而在   对象   stringbu   

不可变String

string对象是不可变的,string中每一个看起来会修改string值的方法,其实都是创建一个新的string对象以包含修改后的内容.

因为string对象不可变,因此使用‘+‘连接很多字符串会导致巨大的性能浪费,最终生成之前会产生大量的中间对象,而在新的编译器中,已经可以自动优化,通过使用stringBuilder优化性能
但是,如果连接字符串使用了循环,那么最好自己调用stringBuilder,因为编译器每循环一次就会生成一个新的stringBuilder

无意识的递归

当编写toString()方法时,如果使用了"xxx"+this的写法将会隐式的触发递归,因为当编译器发现this与字符串相加时会调用this的tostring()方法导致递归,如果想打印对象的地址,应该使用super.toString(),也就是object.toString()

格式化输出

printf()或是format() 两者是等价的

Formatter类

实际上java中的所有格式化功能都是由java.util.Formatter类提供的.

string类中拥有一个string.format()方法 , 使用方式同printf, 但是并不打印, 而是返回格式化后的字符串.通常可以优先使用,虽然string.format方法内部也是使用Formatter类,但是比自己调用代码更加简洁.

正则表达式

java中正则表达式的‘\‘与其他语言不通, ‘\‘代表要插入一个正则表达式的‘\‘,例如要匹配一位数字‘\d‘ .
而如果想插入真正的一个反斜杠,需要‘\\‘.

而换行符制表符之类只需要使用一个‘\‘.

正则表达式

等待日后慢慢学习





字符串

标签:匹配   string   内容   方法   换行符   自动   而在   对象   stringbu   

原文地址:http://www.cnblogs.com/renluxiang/p/788084b88c33f9d20438092c8960fc89.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!