2. String nextLine():返回输入源中下一行的字符串. System.identityHashCode()用来计算对象地址的HashCode. Runtime类是Java运行时的环境.TestRuntime.java String类的构造器:
1. String():创建一个包含0个字符串的String对象(不是返回null). 2. String(byte[] bytes,Charset charset):使用指定字符集将byte数组解码成一
个新的String对象.
3. String(byte[] bytes,int offset , int length):使用平台默认字符集将指定的
byte数组从offset开始的length长度的子数组解码成一个新String. 4. String(byte[] bytes,int offset , int length,String charsetName):用指定字符集
解码成一个新的String.
5. String(char[] value,int offset,int length):从offset开始的length长度中的字符元素连接成字符串.
6. String(String original):新建的String对象是该参数字符串的副本. 7. String(StringBuffer buffer):根据StringBuffer对象来创建对应的String. 8. String(StringBuilder builder):根据Stringbulider对象来创建对应的String. String类的字符串操作常用方法:
1. char charAt(int index):取出指定位置的字符. 2. void setCharAt(int index,char ch):设置index为ch.
3. int comparaTo(String anotherString):如果两个字符串相等,返回0,如果不等,
返回第一个不等的字符差,如果一个正好是另一个的子字符串,那么返回的是长度差.
4. int comparaTo(Object o):和上面方面一样,当o是String的对象的时候使用. 5. String concat(String str):连接字符串,和+功能相同.
6. boolean contentEquals(StringBuffer sb):将String对象与StringBuffer对象sb
进行比较,当他们包含的字符串序列相同返回true.
7. static String copyValueOf(char[] data [,int offset] [,int length]):将字符数组连
接成字符串,与String(char[] content [,int offset] [,int length])构造器功能相同.
8. boolean endWith(String suffix):判断是否以suffix结尾. 9. boolean startsWith(String prefix):判断是否以prefix开头.
10. boolean equals/equalsIgnoreCase():如果字符序列相等返回true,后一个忽
略大小写.
11. byte[] getBytes():将该String转换成byte数组.
12. void getChars(int srcBegin,int srcEnd,char[] dst,dstBegin):将字符串从
begin-end的内容复制到dstBegin的地方,并替换原有的.
13. int indexOf(char ch/ String str [,int fromIndex]):查找出ch/str在fromIndex
之后第一次出现的索引,找不到返回-1.
14. int lastIndexOf(char ch/String str [,int fromIndex]):同上,最后一次出现. 15. int length():返回长度.
16. String replace(char oldChar,char newChar):将字符串中第一个oldChar替换
成newChar.
17. String subString(int beginIndex [,int endIndex]):取出子字符串. 18. char[] toCharArray():将String对象转换成char[]数组. 19. String toLowerCase/toUpperCase():转换成小写/大写.
StringBuilder和StringBuffer提供了insert(),append(),reverse(),setLength(), repalce(),delete()方法,两个类的用法完全相同,只是StringBuffer是线程安全的.他们有两个属性,length和capacity,与String的length不同,他们的length是可以改变的,capacity是容量,程序通常无序关系capacity.(TestStringBuffer.java)
Math类:
三角函数运算,角度弧度互相转换,矩形坐标转换成极坐标. floor()向下取整,ceil()向上取整,round()四舍五入取整. sqrt()计算平方根,cbrt()计算立方根,exp(n)计算e的n次方 hypot(x,y)返回sqrt(x^2+y^2).
pow(x,y)返回x^y,log(n)计算自然对数,log10(n)计算以10为第的对数. log1p(n)相当于log(n+1),abs(n)计算绝对值,copySign(x,y)返回带第二个参数符
号的第一个参数,signum()为正返回1.0,负数返回-1.0,0返回0.
nextAfter(x,y):返回x,y之间最接近x的一个浮点数.
nextUp(x):返回比x略大一点的浮点数. random():返回一个0到1.0之间的浮点数.
Random类,可以生成浮点类型的伪随机数,也可以生成整数类型的伪随机数,
还可以指定生成随机数的范围.(TestRandom.java)
Random是伪随机是因为如果用Random rand = new Random(n),当n相等并且调用随机方法的顺序也一致或造成生成的随机数也一样,所以为了防止生成一样的数字序列:Random rand = new Random(System.currentTimeMillis());
BigDecimal类:double类型会发生精度丢失(TestDouble.java),使用BigDecimal时,通常先用new BigDecimal(String val);而不使用new BigDecimal(Double val);使用double构造器会使运算结果不正确.
selfclass里的Arith类封装用来精确计算浮点数.
Calendar类:是一个抽象类,所以不能用来创建对象.可以用getInstance()来获取一个Calendar对象,下面列出Calendar常用方法:
1. void add(int field,int amount):给指定日历字段添加或者减去指定时间量. 2. int get(int field):返回指定日历字段的值.
3. void roll(int field,int amount):和add类似,但是不进位. 4. void set(int field,int value):将指定字段设定为指定值. 5. void set(int year,int month,int date):设置年月日.
6. void set(int year,int month,int date,int hourOfDay,int minute,int second): 设
置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、MINUTE和SECOND的值.
需要注意的是月份的初始值是0而不是1,Calendar是默认开启容错性的. set()方法是有延迟的,只有当使用了get,getTime,add,roll等才会运算,可以避免不必要的计算.
七、2016.05.11
正则表达式,String类里面也提供了几个正则方法: 1. boolean matches(String regex):判断是否匹配正则.
2. String replaceAll(String regex,String replacement):返回正则替换的字符串. 3. String replaceFirst(String regex,String replacement):返回替换第一个后的新
字符串.
4. String[] split(String regex):根据正则拆分字符串后得到的字符串数组.
小写匹配对应的,大写匹配小写对应之外的.(d ?digit,s?space,w?word,其中word包括0-9,A-Z,a-z,_)
[\\\A-\\\V]用来匹配所有的中文字符.
emil regex:\\\\w{3,20}@\\\\w+\\\\.(com|net|org|cn|gov);
通过Matcher类的find()和group()可以从目标字符串中依次提取中特定子字符串.(TestGroup)
Format格式化类有MessageFormat,NumberFormat和DateFormat分别用来