第13章_字符串:


1:JDK中所有对String修改的方法都是创建一个新的String对象。
2:方法的参数是String时,传递过来的都是String的引用,其值一直保存在某一物理位置。
3:JDK自带的反编译工具:javap
4:通过反编译String中的+操作符可看到:字符串连接符其实是用StringBuilder来实现的,因为StringBuilder效率高。
5:字符串拼接优化:适当的使用StringBuilder对象。StringBuilder是javase5加进去的,之前使用的是线程安全的StringBuffer。
6:toString()中无意识的递归调用:
String toString(){return "这个对象的地址为:"+this}
由于字符串后的+是字符串连接符,所以编译器认为this是一个字符串,而this却并非如此,然后编译器就会将this转换为String,于是编译器调用了this.toString(),于是发生了递归。
7:格式化输出:
7.1:使用printf("Row 1:[%d,%f]",x,y); //x和y将分别代替%d,%f的位置,格式化为double类型和float类型。
7.2:System.out.format("Row 1:[%d,%f]",x,y); format方法和printf基本相同。
8:Formatter类:
java中的格式化功能都由Formatter类处理,它就像一个翻译器,构造的时候传递一些信息,然后根据这些信息输出你需要的内容。
9:String.format()静态方法用于格式化String对象。
10:扫描输入:扫描输入需要解决输入,分词,翻译,返回等问题。
Scanner对象构造的时候可以接受任何的输入源(String、File、InputStream、ReadAble对象)。
Scanner将所有的输入、分词、翻译、都封装在了各种类型的next()方法中(除char的基本类型,BigDecimal、BigInteger)。
11:Scanner界定符:
默认Scanner对象使用空格作为界定符,可以使用useDelimiter()来设置界定符。
12:java正则表达式(一种强大灵活的文本处理工具):
在正则表达式中\d表示一位数字,向正则表达式中写入\方法是\\,所以一位数字表达为:\\d
向正则表达式中添加一个普通的\的方法是\\\\
但是制表符合换行不需要通过转义的\:\t\n
表达:“一个或者多个之前的表达式”使用+。
表达:“可能有一个负号”:-?
例如:表达“可能有一个负数,后面跟着一位或者多位数字”使用-?\\d+
13:String匹配字符串:
System.out.println("-123".matches("-?\\d+")); //true
System.out.println("+123".matches("(-|\\+)?\\d+")); //(由于+在正则中有特殊意义所以使用\\进行转义)true
Arrays.toString("123,123,354,565".split(","));
System.out.println("123,345,2345,654".replaceAll(",","-"));
14:正则表达式:
?????

posted on 2018-03-26 09:17  笑明子  阅读(85)  评论(0编辑  收藏  举报

导航