Java编程思想-9

Java编程思想

字符串
字符串比较常用,但是内容也不是很多,这里就简要记录一下。

1、不可变String

String类是一个final类型的,因此不能被继承,一旦创建就不能修改。甚至当String作为参数时,其引用都会被复制一份,原来的并没有动。

2、重载的“+”和StringBuilder

在java中被重载的符号“+”和“+=”。这两个符号被用于字符连接时,其实都是编译器自动生成一个StringBuilder对象,使用该对象的append()方法实现字符串连接,这样效率会比较高。对于在循环体中使用字符串连接时,如果使用“+,+=”,会每次生成一个StringBuilder对字符串进行连接,但可以使用StringBuilder的append()方法,效率提升很大。

String str = “testString” ;
Int len = 10000;
String result1 = “” ;  //这种效率比较低
For (int i=0;i<len;i++){
    result1 += str ;
}
StringBuilder sb = new StringBuilder() ; //这种效率更高
For (int i=0;i<len;i++){
    sb.append(str);
}

实际上对字符串连接可以使用StringBuffer不过因为它是线程安全的所以效率会稍微低一些。(使用:javap –c 类名)实现类文件的的反编译。

3、无意识的递归

其实就是在方法的toString()方法中打印输出this信息。而任何事时候直接输出类信息时,编译器都会去调用toString()方法,因此一般会在类中覆写Object中的该方法。如果要打印类的地址则要执行super.toString().

4、格式化输出

4.1:类似printf()方法

C语言中有用于占位的格式符号,而java中也有。但要是用

System.out.format()或者System.out.printf()。如:
System.out.printf(“name=%s,price=%.2f”,“mac”,8000.213);

4.2:格式化说明符

%[argument][flags][width][.precision]conversion

  • Width:确定数据宽度;
  • Precision:小数点精度
  • Flags:-,表示右对齐,没有表示左对齐

注意:任何字符使用%b,都会输出一个true。

4.3:String.format()

这个里面直接可以接受转义字符。
String.format(“name=%s,price=%.2f”,“mac”,8000.213);

5、正则表达式

这个应该还是比较复杂的,我就在这里简单记录一些常用的,以后再慢慢深入研究。要是用的类:java.util.regex包中:Pattern和Matcher类。
Pattern pattern = Pattren.compile(regex);//正则表达式字符串;
Matcher m = pattern.matcher(string); //要匹配的字符串;
m.find():判断是否有匹配到的字符,类似于迭代器中的hasNext()方法;
m.group():匹配的结果,类似于next()方法。

6、split()

将字符串分割为一个字符串数组,其中可以添加正则表达式作为参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧阳小伙

您的打赏是我创作的:最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值