1.不可变的String
- 字符串对象是不可变的。String类中每一个看起来会修改String值得方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。
2.重载“+”与StringBuilder
- String对象时不可变的,你可以给一个String对象加人一多的别名。因为String对象具有可读特性,所以指向它的任何引用都不可能改变它的值,因此,也就不会对其他的什么影响。
- 操作符“+”可以用来连接String。我们使用“+”来连接String字符,编译期自动引入了
java.lang.StringBuilder
类,但是StringBuilder在循环内构造的,会创建多个StringBuilder。所以直接使用 StringBuilder类,它只会生成一个StringBuilder类,同时最好预先指定StringBuilder的大小,避免多次重新分配缓冲。
3.无意识的递归
- Java中的每一个类都是从根本上继承Object,标准容器类也不例外。调用容器的toString的方法会遍历容器中所有元素的toString方法。
4.String上的操作
当需要改变字符串的内容时,String类的方法都会返回一个新的String对象。同时,如果内容没有发生改变,String方法只是返回指向员对象的引用而已。这可以节约存储空间避免额外的开销。
-
方法 构造器 length() charAt() getChars,getBytes() toCharArray() equals(),equalsIgnoreCase() compareTo() contains() contentEquals() regionMatcher() startsWith() endsWith() indexOf(),lastIndexOf() substring() concat() replace() toLowerCase(),toUpperCase trim() valueOf()
5.格式化输出
5.1 printf()
printf("Row 1: [%d %f]\n",x,y);
5.2 System.out.format()
5.3 Formatter类
- 所有的格式化功能都有
java.util.Formatter
类处理。可以将Formatter看做一个翻译器,它将你的格式化字符串与数据翻译成需要的结果。
5.4 格式化说明符
-
语法
%[argument_index$][flags][width][.percision]conversion
5.5 Formatter转换
-
类型转化字符
d 整数型(十进制) e 浮点数(科学记数) c unicode字符 x 整数(16进制) b Boolean h 散列码(16进制) s String % 字符% f 浮点数(10进制)
5.6 String,format()
6.正则表达式
7.扫描输入
Scanner构造器可以接受任何类型的输入对象,包括
File对象
,InputStream
,String
或者Readable对象
。Scanner还有相应的hasNext方法,用以判断下一个输入分词是否是所需的类型。
Scanner调用
useDelimiter()
来设置定界符。
05/06/2019 :created