人生只有一次,我认为最重要的就是要有最大的影响力,能够帮助自己、帮助家庭、帮助国家、帮助世界、帮助后人,能够让他们的日子过得更有效率,能够为他们带来幸福和快乐。
【分享】JAVA常用8种类的使用方法详解
上一篇 / 下一篇 2007-01-10 22:55:34 / 精华(2) / 个人分类:电脑技巧
查看( 505 ) /
评论( 14 )
相关阅读:
- 电脑小绝技 (walk110, 2006-12-22)
- 【分享】网络工程师学习笔记 (walk110, 2007-1-10)
TAG: 电脑技巧
-
walk110
发布于2006-11-29 10:36:07
-
回复 #1 walk110 的帖子
六、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类似,以指定的分隔符返回结果。
例1:
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: 10TheJavaplatformistheidealplatformfornetworkcomputing
例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: 19The=Java=platform=is=the=ideal=platform=for=network=computing
×××××××××××××××××××××××××××××××××
七、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: 12sb2.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对象。
××××××××××××××××××
八、Random:随机类型
属于包:java.util.Random
1、属性。
无。
2、构造函数。
Random() :创建一个新的随机数发生器。
Random(long seed) :用一个种子(长整型)创建一个随机数发生器。
3、方法。
说明:
1. 所有方法均为public;
2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
1. protected int next(int bits) :产生下一个伪随机数。
2. boolean nextBoolean() :返回下一个从随机发生器的系列中得到的均匀分布的布尔值。
3. void nextBytes(byte[] bytes) :产生随机字节数组放到指定的数组中。
4. double nextDouble() :返回下一个从随机发生器的系列中得到的均匀分布的0.0到1.0的双精度类型值。
5. float nextFloat() :返回下一个从随机发生器的系列中得到的均匀分布的0.0到1.0的浮点类型值。
6. double nextGaussian() :返回下一个从随机发生器的系列中得到的符合均匀分布的0.0的平均数到1.0方差的高斯分布双精度类型值。
7. int nextInt() :返回下一个从随机发生器的系列中得到的均匀分布的整型值。
8. int nextInt(int n) :返回下一个从随机发生器的系列中得到的均匀分布的0到指定整型数(n)之间的整型值。
9. long nextLong() :返回下一个从随机发生器的系列中得到的均匀分布的长整型值。
10. void setSeed(long seed) :设置随机数发生器的种子为一个长整型数。
关于种子的描述:
这个类的对象使用一个48位的种子,
如果这个类的两个实例是用同一个种子创建的,
并且,各自对它们以同样的顺序调用方法,
则它们会产生相同的数字序列。
下面就对上面的介绍做一个实验,
尤其注意相同种子时的结果,
如果用默认的构造函数构造对象,
他们是属于同一个种子的。
import java.util.Random;public class TestRandom{ public static void main(String[] args){ Random r1 = new Random(50); System.out.println("第一个种子为50的Random对象"); System.out.println("r1.nextBoolean():\t" + r1.nextBoolean()); System.out.println("r1.nextInt():\t\t" + r1.nextInt()); System.out.println("r1.nextDouble():\t" + r1.nextDouble()); System.out.println("r1.nextGaussian():\t" + r1.nextGaussian()); System.out.println("---------------------------"); Random r2 = new Random(50); System.out.println("第二个种子为50的Random对象"); System.out.println("r2.nextBoolean():\t" + r2.nextBoolean()); System.out.println("r2.nextInt():\t\t" + r2.nextInt()); System.out.println("r2.nextDouble():\t" + r2.nextDouble()); System.out.println("r2.nextGaussian():\t" + r2.nextGaussian()); System.out.println("---------------------------"); Random r3 = new Random(100); System.out.println("种子为100的Random对象"); System.out.println("r3.nextBoolean():\t" + r3.nextBoolean()); System.out.println("r3.nextInt():\t\t" + r3.nextInt()); System.out.println("r3.nextDouble():\t" + r3.nextDouble()); System.out.println("r3.nextGaussian():\t" + r3.nextGaussian()); System.out.println("结果一目了然!"); }}
结果:
第一个种子为50的Random对象
r1.nextBoolean():
truer1.nextInt():
-1727040520r1.nextDouble():
0.6141579720626675r1.nextGaussian():
2.377650302287946---------------------------
第二个种子为50的Random对象
r2.nextBoolean():
truer2.nextInt():
-1727040520r2.nextDouble():
0.6141579720626675r2.nextGaussian():
2.377650302287946---------------------------
第三个种子为100的Random对象
r3.nextBoolean():
truer3.nextInt():
-1139614796r3.nextDouble():
0.19497605734770518r3.nextGaussian():
0.6762208162903859
结果一目了然!
-
wang_boyu
发布于2006-12-17 16:34:10
-
dingding ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬`
-
candy123360
发布于2007-01-16 09:47:23
-
这么好的帖子怎么没人看呢,哦,这里人气太不行了
-
cyi8发布于2007-01-16 13:32:33
-
好东西,比书本的详细多了,收藏。。。。。谢谢。。。。
-
changshijia发布于2007-01-16 15:37:02
-
好东值收藏. 学习中.
-
iigoy
发布于2007-01-17 14:14:07
-
谢谢楼主了啊,
要不我还真忘了我现在正在学JAVA呢!!
感激涕零啊
-
smh188发布于2007-01-18 19:19:58
-
写 的太好了,版主Q号多少啊?
-
不是流氓
发布于2007-01-27 22:48:16
-
偶喜欢这样能学到东西的文章,顶起来了哦
-
黑色の幻想
发布于2007-01-27 22:52:34
-
还没学JAVA呢~
-
520守望者
发布于2007-03-06 20:35:33
-
收藏一下!!!支持一下。
-
竹落花飘
发布于2007-03-29 18:53:35
-
准备学一下JAVA,学习一下
-
xdh0发布于2007-03-29 20:41:33
-
顶!~~!~!不过都不知道怎么去入手 !~
顶!~~!~!不过都不知道怎么去入手 !~顶!~~!~!不过都不知道怎么去入手 !~
-
lb2047发布于2007-03-30 12:13:17
-
全部是些基础的东西
值得学习
-
天山一族发布于2007-03-31 10:40:21
-
呵呵~~~~~~~~~~,没人指点是不行的~~顶上去
