Number和Math类
内置数据类型例如int和double,都对应有类,例如Integer和Double。这些类都是从Number类继承,具有一些内置方法,可参考
比较有意思的是Number类的toStrig()方法。注意如下语句不代表f为Double类的对象。
double f = 1.1;
而下方表达式才是
Double f = 1.1;
Math类中的方法都是静态的,可以直接通过类名调用。
Math类中有一个比较有意思的函数是atan2(),把笛卡尔坐标系的坐标转换为极坐标,返回极坐标的theta值。atan2()的第一个参数是y!
Character类
与Number类的行为类似,是对应char内置类型的。声明并初始化一个Character类对象可写成
Character ch = new Character('c');
与C++一致,支持 \n 等转义字符。
Character类预定义了一些有用的成员函数,例如:(都是Character类的静态方法)
isLetter() - 检测是否为英文字母
isDigit() - 检测是否为数字
isWhitspace() - 检测是否为空白,实测 \t 和 \n 都返回true
toUpperCase(), toLowerCase() - 切换为大写和小写
toString() - 转换为一个长度为1的字符串
Sting类
String str = new String("Hello!");
创建一个String对象。String对象本身是不可修改的。
str.length()返回str的长度。
可用concat()方法来连接两个字符串,但是 + 更常用。
创建格式化的字符串:
String fs = String.format("C类似的格式描述字符串", <逗号分割的参数表>);
String类定义了很多成员函数,具体可参考
Trimming Spaces from the Beginning or End of a String
String result = str.trim();
参考这里。
StringBuffer类
StringBuffer类的对象本身可以修改。
StringBuffer sb = new StringBuffer("A string.");
sb.append("Appended string.");
sb.capacity()和sb.length()。capacisty()返回内部char数组的长度,当length超出内部数组长度时,将发生新内存的申请请求。
StringBuffer是线程安全的,但是StringBuilder不是线程安全的。