| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1352 人关注过本帖
标题:常用类的使用方法
只看楼主 加入收藏
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
 问题点数:0 回复次数:9 
常用类的使用方法
目录
1、Integer类
2、Float类
3、Double类
4、Character类
5、String类
6、StringTokenizer类
7、StringBuffer类
搜索更多相关主题的帖子: Float Character Integer Double String 
2005-01-10 12:26
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
Interger:整数类型 1、属性。
    static int MAX_VALUE:返回最大的整型数; static int MIN_VALUE:返回最小的整型数; static Class TYPE :返回当前类型。
例子:
代码:
System.out.println("Integer.MAX_VALUE: " + Integer.MAX_VALUE ); 结果为:Integer.MAX_VALUE: 2147483647
2、构造函数。
    Integer(int value) :通过一个int的类型构造对象; Integer(String s) :通过一个String的类型构造对象;
例子:
代码:
Integer i = new Integer("1234"); 生成了一个值为1234的Integer对象。
3、方法。 说明: 1. 所有方法均为public; 2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])> 如: static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
    1. byteValue():取得用byte类型表示的整数; 2. int compareTo(Integer anotherInteger) :比较两个整数。相等时返回0;小于时返回负数;大于时返回正数。
例子:
代码:
Integer i = new Integer(1234); System.out.println("i.compareT " + i.compareTo(new Integer(123)) ); 结果为:i.compareT 1
    3. int compareTo(Object o) :将该整数与其他类进行比较。如果o也为Integer类,进行方法2 的操作;否则,抛出ClassCastException异常。 4. static Integer decode(String nm) :将字符串转换为整数。 5. double doubleValue() :取得该整数的双精度表示。 6. boolean equals(Object obj) :比较两个对象。 7. float floatValue() :取得该整数的浮点数表示。 8. static Integer getInteger(String nm) :根据指定名确定系统特征值。 9. static Integer getInteger(String nm, int val) :上面的重载。 10. static Integer getInteger(String nm, Integer val) :上面的重载。 11. int hashCode() :返回该整数类型的哈希表码。 12. int intValue() : 返回该整型数所表示的整数。 13. long longValue() :返回该整型数所表示的长整数。 14. static int parseInt(String s) :将字符串转换成整数。s必须是时进制数组成,否则抛出NumberFormatException异常。 15. static int parseInt(String s, int radix) :以radix为基数radix返回s的十进制数。所谓的基数,就是“几进制”。
例子:
代码:
String s1 = new String("1010"); System.out.println("Integer.parseInt(String s, int radix): " + Integer.parseInt(s1,2) ); 结果为:Integer.parseInt(String s, int radix): 10
    16. short shortValue() :返回该整型数所表示的短整数。 17. static String toBinaryString(int i) :将整数转为二进制数的字符串。 18. static String toHexString(int i) :将整数转为十六进制数的字符串。 19. static String toOctalString(int i) :将整数转为八进制数的字符串。 20. String toString() :将该整数类型转换为字符串。 21. static String toString(int i) :将该整数类型转换为字符串。不同的是,此为类方法。 22. static String toString(int i, int radix) :将整数i以基数radix的形式转换成字符串。
例子:
代码:
int i1 = 54321; System.out.println("Integer.toString(int i, int radix): " + Integer.toString(i1,16) ); 结果为:Integer.toString(int i, int radix): d431
    23. static Integer valueOf(String s) :将字符串转换成整数类型。 24. static Integer valueOf(String s, int radix) :将字符串以基数radix的要求转换成整数类型。

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:27
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
Float:实数类型 1、属性。
    1. static float MAX_VALUE : 返回最大浮点数,在不同硬件平台中由Float.intBitsToFloat(0x7f7fffff)计算得出。 2. static float MIN_VALUE : 返回最小浮点数,在不同硬件平台中由Float.intBitsToFloat(0x1)计算得出。 3. static float NaN : 表示非数值类型的浮点数,在不同硬件平台中由Float.intBitsToFloat(0x7fc00000)计算得出。 4. static float NEGATIVE_INFINITY:返回负无穷浮点数,在不同硬件平台中由Float.intBitsToFloat(0xff800000)计算得出。 5. static float POSITIVE_INFINITY :返回正无穷浮点数,在不同硬件平台中由Float.intBitsToFloat(0x7f800000)计算得出。 6. static Class TYPE :返回当前类型。
2、构造函数。
    Float(double value) :以double类型为参数构造Float对象。 Float(float value) :以Float类型为参数构造Float对象。 Float(String s) :以String类型为参数构造Float对象。
3、方法。 说明: 1. 所有方法均为public; 2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])> 如: static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
    1. byte byteValue() :返回以字节表示的浮点数。 2. static int compare(float f1, float f2) :此为类方法,比较f1和f2。相当于new Float(f1).compareTo(new Float(f2))。如果f1与f2相等,返回0;小于关系,返回负数;大于关系,返回正数。 3. int compareTo(Float anotherFloat) :此为对象方法,当前对象与anotherFloat比较。与2的比较规则相同。 4. int compareTo(Object o) :当前对象与o进行比较,如果o属于Float类,那么,相当于3;如果是其他类,则抛出ClassCastException异常。 5. double doubleValue() :返回浮点数的双精度值。 6. boolean equals(Object obj) :比较当前Float对象与obj的内容是否相同。大多数情况是比较两个Float对象的值是否相等,相当于f1.floatValue() == f2.floatValue()的值。与2、3、4不同的是:6返回boolean型。 7. static int floatToIntBits(float value):按照IEEE 754转化成float并输出它的十进制数值。 8. float floatValue() :返回该浮点数对象的浮点数值。 9. int hashCode() :返回该Float对象的哈希表码。 10. int intValue() :返回该Float对象的整数值(整数部分)。 11. boolean isInfinite() :判断该Float对象是否是无穷。 12. static boolean isInfinite(float v) :与11类似,不同的是:此为类方法,判断的是v。 13. boolean isNaN() :判断该Float对象是否为非数值。 14. static boolean isNaN(float v) :功能与13一样,只不过判断v。 15. long longValue() :返回该Float对象的长整数值。 16. static float parseFloat(String s) :将字符串转换成浮点数。 17. short shortValue() :返回该Float对象的短整数值。 18. String toString() :将该Float对象转换成字符串。 19. static String toString(float f) :功能与18一样,只是转换f。 20. static Float valueOf(String s) :将字符串转换成浮点数。
例子:
代码:
Float f = new Float(1237.45); Float fs = new Float("123.45"); Float fd = new Float(1234146865679824657987947924623724749.16416925); System.out.println("f.compare(fs): " + f.compareTo(fs) ); System.out.println("f.compareTo(fd): " + f.compareTo(fd) ); System.out.println("Float.compare(1.23f,3.25f): " + Float.compare(1.23f,3.25f) ); 结果为: f.compare(fs): 1 f.compareTo(fd): -1 Float.compare(1.23f,3.25f): -1
代码:
Float f = new Float(1237.45); System.out.println("f.equals(fs): " + f.equals(fs) ); 结果为:f.equals(fs): false

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:27
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
Double:双精度类型 1、属性。
    1. static Double MAX_VALUE : 返回最大双精度数,在不同硬件平台中由Double.longBitsToDouble(0x7fefffffffffffffL)计算得出。 2. static Double MIN_VALUE : 返回最小双精度数,在不同硬件平台中由Double.longBitsToDouble(0x1L)计算得出。 3. static Double NaN : 表示非数值类型的双精度数,在不同硬件平台中由Double.longBitsToDouble(0x7ff8000000000000L)计算得出。 4. static Double NEGATIVE_INFINITY:返回负无穷双精度数,在不同硬件平台中由Double.longBitsToDouble(0xfff0000000000000L)计算得出。 5. static Double POSITIVE_INFINITY :返回正无穷双精度数,在不同硬件平台中由Double.longBitsToDouble(0x7ff0000000000000L)计算得出。 6. static Class TYPE :返回当前类型。
2、构造函数。
    Double(double value) :以double类型为参数创建Double对象。 Double(String s) :以String类型为参数创建String对象。
3、方法。 说明: 1. 所有方法均为public; 2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])> 如: static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
    1. byte byteValue() :返回以字节表示的双精度数。 2. static int compare(double d1, double d2) :此为类方法,比较d1和d2。相当于new Double(d1).compareTo(new Double(d2))。如果d1与d2相等,返回0;小于关系,返回负数;大于关系,返回正数。 3. int compareTo(Double anotherDouble) :此为对象方法,当前对象与anotherDouble比较。与2的比较规则相同。 4. int compareTo(Object o) :当前对象与o进行比较,如果o属于Double类,那么,相当于3;如果是其他类,则抛出ClassCastException异常。 5. static long doubleToLongBits(double value) :把value按照IEEE 754转化成long并输出它的十进制数值。 6. double doubleValue() :返回该双精度数对象的双精度数值。 7. boolean equals(Object obj) :比较当前Double对象与obj的内容是否相同。大多数情况是比较两个Double对象的值是否相等,相当于d1.doubleValue() == d2.doubleValue()的值。 8. float floatValue() :返回该浮点数对象的浮点数值。 9. int hashCode() :返回该Double对象的哈希表码。 10. int intValue() :返回该Double对象的整数值(整数部分)。 11. boolean isInfinite() :判断该Double对象是否是无穷。 12. static boolean isInfinite(double v) :与11类似,不同的是:此为类方法,判断的是v。 13. boolean isNaN() :判断该Double对象是否为非数值。 14. static boolean isNaN(double v) :功能与13一样,只不过判断v。 15. long longValue() :返回该Double对象的长整数值。 16. static float parseFloat(String s) :将字符串转换成双精度数。 17. short shortValue() :返回该Double对象的短整数值。 18. String toString() :将该Double对象转换成字符串。 19. static String toString(Double f) :功能与18一样,只是转换f。 20. static Double valueOf(String s) :将字符串转换成双精度数。
例子:与Float类的相似。

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:28
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
Character:字符类型 1、属性。
    static int MIN_RADIX :返回最小基数。 static int MAX_RADIX :返回最大基数。 static char MAX_VALUE :字符类型的最大值。 static char MIN_VALUE :字符类型的最小值。 static Class TYPE :返回当前类型。
2、构造函数。
    Character(char value):以char参数构造一个Character对象。
3、方法。 说明: 1. 所有方法均为public; 2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])> 如: static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
    1. char charValue() :返回字符对象的值。 2. int compareTo(Character anotherCharacter) :当前Character对象与anotherCharacter比较。相等关系返回0;小于关系返回负数;大于关系返回正数。 3. int compareTo(Object o) :当前对象与另一个对象进行比较。如果o是Character对象,则与2功能一样;否则,抛出ClassCastException异常。 4. static int digit(char ch, int radix) :根据基数返回当前字符的值的十进制。如果不满足Character.MIN_RADIX <= radix <= Character.MAX_RADIX,或者,ch不是radix基数中的有效值,返回"-1";如果ch是“大写”的A到Z之间,则返回ch - 'A' + 10 的值;如果是“小写”a到z之间,返回ch - 'a' + 10 的值。
代码:
System.out.println("Character.MIN_RADIX: " + Character.MIN_RADIX ); System.out.println("Character.MAX_RADIX: " + Character.MAX_RADIX ); System.out.println("Character.digit('2',2): " + Character.digit('2',2) ); System.out.println("Character.digit('7',10): " + Character.digit('7',10) ); System.out.println("Character.digit('F',16): " + Character.digit('F',16) ); 结果为: Character.MIN_RADIX: 2 Character.MAX_RADIX: 36 Character.digit('2',2): -1 Character.digit('7',10): 7 Character.digit('F',16): 15
    5. boolean equals(Object obj) :与obj对象比较。当且仅当obj不为“null”并且和当前Character对象一致时返回“true”。 6. static char forDigit(int digit, int radix) :根据特定基数判断当前数值表示的字符。4的逆运算,非法数值时返回“'\u0000'”。
代码:
System.out.println("Character.MIN_RADIX: " + Character.MIN_RADIX ); System.out.println("Character.MAX_RADIX: " + Character.MAX_RADIX ); System.out.println("Character.forDigit(2,2): " + Character.forDigit(2,2) ); System.out.println("Character.forDigit(7,10): " + Character.forDigit(7,10) ); System.out.println("Character.forDigit(15,16): " + Character.forDigit(15,16) ); 结果为: Character.MIN_RADIX: 2 Character.MAX_RADIX: 36 Character.forDigit(2,2): Character.forDigit(7,10): 7 Character.forDigit(15,16): f
    7. static int getNumericValue(char ch) :返回字符ch的数值。 8. static int getType(char ch) :返回字符所属类型。具体有哪些种类请查看Java文档资料。 9. int hashCode() :返回当前字符的哈希表码。 10. static boolean isDefined(char ch) :判断字符ch在Unicode字符集是否用明确定义。 11. static boolean isDigit(char ch) :判断字符ch是否为数字。 12. static boolean isIdentifierIgnorable(char ch) :判断字符ch是否为Unicode字符集中可忽略的字符。 13. static boolean isISOControl(char ch) :判断字符ch是否为ISO标准中的控制字符。 14.static boolean isJavaIdentifierPart(char ch) :判断字符ch是否为Java中的部分标识符。 15. static boolean isJavaIdentifierStart(char ch) :判断字符ch是否为Java中的第一个标识符。 16. static boolean isLetter(char ch) :判断字符ch是否为字母。 17. static boolean isLetterOrDigit(char ch) :判断字符ch是否为字母或数字。 18. static boolean isLowerCase(char ch) :判断字符ch是否为小写字母。 19. static boolean isMirrored(char c) :根据Unicode表判断字符c是否存在与之方向相反的字符。例如:“[”存在与之方向相反的“]”,结果为:true。 20. static boolean isSpaceChar(char ch) :判断字符ch是否为Unicode中的空格。 21. static boolean isUpperCase(char ch) :判断字符ch是否为大写字母。 22. static boolean isWhitespace(char ch) :判断字符ch是否为Java定义中的空字符。
    代码:
    其中包括: char c1 = '\u0009';//水平列表符 char c2 = '\u000A';//换行 char c3 = '\u000B';//垂直列表符 char c4 = '\u000C';//换页 char c5 = '\u000D';//回车 char c6 = '\u001C';//文件分隔符 char c7 = '\u001D';//组分隔符 char c8 = '\u001E';//记录分隔符 char c9 = '\u001F';//单元分隔符
    23. static char toLowerCase(char ch) :转换ch是否为小写。 24. String toString() :将当前Character对象转换成字符串。 25. static String toString(char c) :此为类方法,将c转换成字符串。 26. static char toUpperCase(char ch) :转换ch是否为大写。
代码:
System.out.println("Character.toUpperCase('q'): " + Character.toUpperCase('q') ); System.out.println("Character.toLowerCaseCase('B'): " + Character.toLowerCase('B') ); 结果为: Character.toUpperCase('q'): Q Character.toLowerCaseCase('B'): b

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:28
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
String:字符串类型 此帖参考了maxlyy朋友的帖子,在这里特别感谢。 1、构造函数。
    String() :构造一个空字符串对象。 String(byte[] bytes) :通过byte数组构造字符串对象。 String(byte[] bytes, int offset, int length) :通过byte数组,从offset开始,总共length长的字节构造字符串对象。 String(char[] value) :通过char数组构造字符串对象。 String(char[] value, int offset, int count) :通过char数组,从offset开始,总共length长的字节构造字符串对象。 String(String original) :构造一个original的副本。既,拷贝一个original。 String(StringBuffer buffer) :通过StringBuffer数组构造字符串对象;
代码:
byte[] b = {'a','b','c','d','e','f','g','h','i','j'}; char[] c = {'0','1','2','3','4','5','6','7','8','9'}; String sb = new String(b); String sb_sub = new String(b,3,2); String sc = new String(c); String sc_sub = new String(c,3,2); String sb_copy = new String(sb); System.out.println("sb: " + sb ); System.out.println("sb_sub: " + sb_sub ); System.out.println("sc: " + sc ); System.out.println("sc_sub: " + sc_sub ); System.out.println("sb_copy: " + sb_copy ); 结果为: sb: abcdefghij sb_sub: de sc: 0123456789 sc_sub: 34 sb_copy: abcdefghij
2、方法。 说明: 1. 所有方法均为public; 2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])> 如: static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
    1. char charAt(int index) :取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。
代码:
String s = new String("abcdefghijklmnopqrstuvwxyz"); System.out.println("s.charAt(5): " + s.charAt(5) ); 结果为:s.charAt(5): f
    2. int compareTo(String anotherString) :当前String对象与anotherString比较。相等关系返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。 3. int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。
代码:
String s1 = new String("abcdefghijklmn"); String s2 = new String("abcdefghij"); String s3 = new String("abcdefghijalmn"); System.out.println("s1.compareTo(s2): " + s1.compareTo(s2) );//返回长度差 System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) );//返回'k'-'a'的差 结果为: s1.compareTo(s2): 4 s1.compareTo(s3): 10
    4. String concat(String str) :将该String对象与str连接在一起。 5. boolean contentEquals(StringBuffer sb) :将该String对象与StringBuffer对象sb进行比较。 6. static String copyValueOf(char[] data) : 7. static String copyValueOf(char[] data, int offset, int count) :这两个方法将char数组转换成String,与其中一个构造函数类似。 8. boolean endsWith(String suffix) :该String对象是否以suffix结尾。
代码:
String s1 = new String("abcdefghij"); String s2 = new String("ghij"); System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) ); 结果为:s1.endsWith(s2): true
    9. boolean equals(Object anObject) :当anObject不为空并且与当前String对象一样,返回true;否则,返回false。 10. byte[] getBytes() :将该String对象转换成byte数组。 11. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。
代码:
char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her! String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you! System.out.println( s1 ); 结果为:I love you!
    12. int hashCode() :返回当前字符的哈希表码。 13. int indexOf(int ch) :只找第一个匹配字符位置。 14. int indexOf(int ch, int fromIndex) :从fromIndex开始找第一个匹配字符位置。 15. int indexOf(String str) :只找第一个匹配字符串位置。 16. int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置。
代码:
String s = new String("write once, run anywhere!"); String ss = new String("run"); System.out.println("s.indexOf('r'): " + s.indexOf('r') ); System.out.println("s.indexOf('r',2): " + s.indexOf('r',2) ); System.out.println("s.indexOf(ss): " + s.indexOf(ss) ); 结果为: s.indexOf('r'): 1 s.indexOf('r',2): 12 s.indexOf(ss): 12
    17. int lastIndexOf(int ch) 18. int lastIndexOf(int ch, int fromIndex) 19. int lastIndexOf(String str) 20. int lastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容。 21. int length() :返回当前字符串长度。 22. String replace(char oldChar, char newChar) :将字符号串中第一个oldChar替换成newChar。 23. boolean startsWith(String prefix) :该String对象是否以prefix开始。 24. boolean startsWith(String prefix, int toffset) :该String对象从toffset位置算起,是否以prefix开始。
代码:
String s = new String("write once, run anywhere!"); String ss = new String("write"); String sss = new String("once"); System.out.println("s.startsWith(ss): " + s.startsWith(ss) ); System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) ); 结果为: s.startsWith(ss): true s.startsWith(sss,6): true
    25. String substring(int beginIndex) :取从beginIndex位置开始到结束的子字符串。 26.String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串。 27. char[] toCharArray() :将该String对象转换成char数组。 28. String toLowerCase() :将字符串转换成小写。 29. String toUpperCase() :将字符串转换成大写。
代码:
String s = new String("java.lang.Class String"); System.out.println("s.toUpperCase(): " + s.toUpperCase() ); System.out.println("s.toLowerCase(): " + s.toLowerCase() ); 结果为: s.toUpperCase(): JAVA.LANG.CLASS STRING s.toLowerCase(): java.lang.class string
    30. static String valueOf(boolean b) 31. static String valueOf(char c) 32. static String valueOf(char[] data) 33. static String valueOf(char[] data, int offset, int count) 34. static String valueOf(double d) 35. static String valueOf(float f) 36. static String valueOf(int i) 37. static String valueOf(long l) 38. static String valueOf(Object obj) 以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:28
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
StringTokenizer:字符串分隔解析类型 属于:java.util包。 1、构造函数。
    1. StringTokenizer(String str) :构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。 2. StringTokenizer(String str, String delim) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。 3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
2、方法。 说明: 1. 所有方法均为public; 2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])> 如: static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
    1. int countTokens() :返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量(例2)。 2. boolean hasMoreTokens() :返回是否还有分隔符。 3. boolean hasMoreElements() :结果同2。 4. String nextToken() :返回从当前位置到下一个分隔符的字符串。 5. Object nextElement() :结果同4。 6. String nextToken(String delim) :与4类似,以指定的分隔符返回结果。
例子:
代码:
String s = new String("The Java platform is the ideal platform for network computing"); StringTokenizer st = new StringTokenizer(s); System.out.println( "Token Total: " + st.countTokens() ); while( st.hasMoreElements() ){ System.out.println( st.nextToken() );            } 结果为: Token Total: 10 The Java platform is the ideal platform for network computing
例2:
代码:
String s = new String("The=Java=platform=is=the=ideal=platform=for=network=computing"); StringTokenizer st = new StringTokenizer(s,"=",true); System.out.println( "Token Total: " + st.countTokens() ); while( st.hasMoreElements() ){ System.out.println( st.nextToken() ); } 结果为: Token Total: 19 The = Java = platform = is = the = ideal = platform = for = network = computing

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:29
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
StringBuffer:StringBuffer类型 描述:在实际应用中,经常回遇到对字符串进行动态修改。这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。 1、构造函数。
    StringBuffer() :构造一个没有任何字符的StringBuffer类。 StringBuffer(int length) : :构造一个没有任何字符的StringBuffer类,并且,其长度为length。 StringBuffer(String str) :以str为初始值构造一个StringBuffer类。
2、方法。 说明: 1. 所有方法均为public; 2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])> 如: static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
    1. StringBuffer append(boolean b) 2. StringBuffer append(char c) 3. StringBuffer append(char[] str) 4. StringBuffer append(char[] str, int offset, int len) 5. StringBuffer append(double d) 6. StringBuffer append(float f) 7. StringBuffer append(int i) 8. StringBuffer append(long l) 9. StringBuffer append(Object obj) 10. StringBuffer append(String str) 11. StringBuffer append(StringBuffer sb) 以上的方法都是向字符串缓冲区“追加”元素,但是,这个“元素”参数可以是布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数对象类型的字符串、字符串和StringBuffer类等。如果添加的字符超出了字符串缓冲区的长度,Java将自动进行扩充。
代码:
String question = new String("1+1="); int answer = 3; boolean result = (1+1==3); StringBuffer sb = new StringBuffer(); sb.append(question); sb.append(answer); sb.append('\t'); sb.append(result); System.out.println(sb); 结果为: 1+1=3 false
    12. int capacity() :返回当前StringBuffer对象(字符串缓冲区)的总空间,而非字符号串的长度。 13. char charAt(int index) :在当前StringBuffer对象中取索引号为index的字符。第一个字符的索引为“0” 14. StringBuffer delete(int start, int end) :删除当前StringBuffer对象中以索引号start开始,到end结束的子串。 15. StringBuffer deleteCharAt(int index) :删除当前StringBuffer对象中索引号为index的字符。 16. void ensureCapacity(int minimumCapacity) :重新设置字符号串缓冲区的总空间。如果minimumCapacity大于当前的总空间,则新的空间被设置:一种结果是minimumCapacity;另一种结果是{“老空间”乘2加2}。
代码:
StringBuffer sb1 = new StringBuffer(5); StringBuffer sb2 = new StringBuffer(5); sb1.ensureCapacity(6); sb2.ensureCapacity(100); System.out.println( "sb1.Capacity: " + sb1.capacity() ); System.out.println( "sb2.Capacity: " + sb2.capacity() ); 结果为: sb1.Capacity: 12 sb2.Capacity: 100
    17. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :从当前StringBuffer对象的索引号srcBegin开始,到srcEnd结束的子串,赋值到字符数组dst中,并且从dst的索引号dstBegin开始。
代码:
StringBuffer sb = new StringBuffer("I love her!"); char[] i = {'I',' ','l','o','v','e',' ','y','o','u'}; sb.getChars(7,10,i,7); System.out.println( "sb: " + sb ); 结果为:sb: I love her!
    18. int indexOf(String str) :返回当前StringBuffer对象中,第一个满足str子串的位置。 19. int indexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回第一个满足str子串的位置。 20. StringBuffer insert(int offset, boolean b) 21. StringBuffer insert(int offset, char c) 22. StringBuffer insert(int offset, char[] str) 23. StringBuffer insert(int index, char[] str, int offset, int len) 24. StringBuffer insert(int offset, double d) 25. StringBuffer insert(int offset, float f) 26. StringBuffer insert(int offset, int i) 27. StringBuffer insert(int offset, long l) 28. StringBuffer insert(int offset, Object obj) 29. StringBuffer insert(int offset, String str) 以上的方法都是在当前StringBuffer对象中插入一个元素,在索引号offset处插入相应的值。 30. int lastIndexOf(String str) :返回当前StringBuffer对象中,最后一个满足str子串的位置。 31. int lastIndexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回最后一个满足str子串的位置。 32. int length() :返回当前StringBuffer对象(字符缓冲区)中,字符串的长度。注意:此方法与capacity() 不同。 33. StringBuffer replace(int start, int end, String str) :替换当前StringBuffer对象的字符串。从start开始,到end结束的位置替换成str。 34. StringBuffer reverse() :将字符串翻转。
代码:
StringBuffer sb = new StringBuffer("0123456789"); System.out.println( "sb.reverse(): " + sb.reverse() ); 结果为:sb.reverse(): 9876543210
    35. void setCharAt(int index, char ch) :设置索引号index的字符为ch。 36. void setLength(int newLength) :重新设置字符串缓冲区中字符串的长度,如果newLength小于当前的字符串长度,将截去多余的字符。
代码:
StringBuffer sb = new StringBuffer("0123456789"); sb.setLength(5); System.out.println( "sb: " + sb ); 结果为:sb: 01234
    37. String substring(int start) :取当前StringBuffer对象中,从start开始到结尾的子串。 38. String substring(int start, int end) :取当前StringBuffer对象中,从start开始到end的子串。 39. String toString() :将当前StringBuffer对象转换成String对象。

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:29
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
一些JDK中常用类的使用方法,各位如果有比较熟悉的类,欢迎大家踊跃跟帖,不要跟些无关的帖!

〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-10 12:32
kingarden
Rank: 2
等 级:论坛游民
威 望:1
帖 子:517
专家分:40
注 册:2004-12-8
收藏
得分:0 
util类: 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。

Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap

Collection接口

  Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。

  所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。

  如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下:

    Iterator it = collection.iterator(); // 获得一个迭代子     while(it.hasNext()) {       Object obj = it.next(); // 得到下一个元素     }   由Collection接口派生的两个接口是List和Set。

List接口

  List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。 和下面要提到的Set不同,List允许有相同的元素。

  除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。

  实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。

LinkedList类

  LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。

  注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:     List list = Collections.synchronizedList(new LinkedList(...));

ArrayList类

  ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。 size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。

  每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。

  和LinkedList一样,ArrayList也是非同步的(unsynchronized)。

Vector类

  Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常。

Stack 类

  Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop方法,还有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。

Set接口

  Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。

  很明显,Set的构造函数有一个约束条件,传入的Collection参数不能包含重复的元素。

  请注意:必须小心操作可变对象(Mutable Object)。如果一个Set中的可变元素改变了自身状态 导致Object.equals(Object)=true将导致一些问题。

Map接口

  请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。

Hashtable类

  Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。

  添加数据使用put(key, value),取出数据使用get(key),这两个基本操作的时间开销为常数。

  Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。

使用Hashtable的简单示例如下,将1,2,3放到Hashtable中,他们的key分别是”one”,”two”,”three”:

    Hashtable numbers = new Hashtable();     numbers.put(“one”, new Integer(1));     numbers.put(“two”, new Integer(2));     numbers.put(“three”, new Integer(3));   要取出一个数,比如2,用相应的key:     Integer n = (Integer)numbers.get(“two”);     System.out.println(“two = ” + n);


  由于作为key的对象将通过计算其散列函数来确定与之对应的value的位置,因此任何作为key的对象都必须实现hashCode和equals方法。hashCode和equals方法继承自根类Object,如果你用自定义的类当作key的话,要相当小心,按照散列函数的定义,如果两个对象相同,即obj1.equals(obj2)=true,则它们的hashCode必须相同,但如果两个对象不同,则它们的hashCode不一定不同,如果两个不同对象的hashCode相同,这种现象称为冲突,冲突会导致操作哈希表的时间开销增大,所以尽量定义好的hashCode()方法,能加快哈希表的操作。

  如果相同的对象有不同的hashCode,对哈希表的操作会出现意想不到的结果(期待的get方法返回null),要避免这种问题,只需要牢记一条:要同时复写equals方法和hashCode方法,而不要只写其中一个。   Hashtable是同步的。

HashMap类

  HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。,但是将HashMap视为Collection时(values()方法可返回Collection),其迭代子操作时间开销和HashMap的容量成比例。因此,如果迭代操作的性能相当重要的话,不要将HashMap的初始化容量设得过高,或者load factor过低。

WeakHashMap类

  WeakHashMap是一种改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收。

总结

  如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。

  如果程序在单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步的类,其效率较高,如果多个线程可能同时操作一个类,应该使用同步的类。

  要特别注意对哈希表的操作,作为key的对象要正确复写equals和hashCode方法。   尽量返回接口而非实际的类型,如返回List而非ArrayList,这样如果以后需要将ArrayList换成LinkedList时,客户端代码不用改变。这就是针对抽象编程


〖ΦγЙ┅给梦一把梯子,现实与梦想之间的距离即可忽略,不可跨越的迢迢银河举步便可迈过Й┅Φ〗
2005-01-26 09:47
快速回复:常用类的使用方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.735989 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved