常用实用类之其他类

我与影子孤独终老i 提交于 2020-01-27 01:34:28

一.StringTokenizer类

1.说明:在不使用正则表达式的情况下,我们也可以分解String对象的字符序列,就是使用StringTokenizer对象分解。

2.构造方法:
1)StringTokenizer(String s);
此方法为String对象s构造一个分析器,使用默认的分隔标记,即空格符,换行符,回车符,Tab符等作为分隔标记符。例子:

StringTokenizer fenxi=new StringTokenizer("you are welcome");

2)StringTokenizer(String s,String delim);
此方法为String对象s构造一个分析器,参数delim的字符序列中的字符的任意排列被当做分隔标记。例如:

StringTokenizer fenxi=new StringTokenizer("you#*are*##welcome","#*");
上式中指定字符#和字符*是分隔标记,那么就是#和*的任意排列,
例如###*#*就是一个分隔标记,#也是,*也是

3.非构造方法
1)nextToken();
此方法可以逐个获取String对象的字符序列中的语言符号。每当调用nextToken()时,都将在String对象的字符序列中获得下一个语言符号,计数器变量值减一。

2)hasMoreTokens();
获取String对象的字符序列中的语言符号通常用while循环逐个获取,为控制循环,可以使用此方法,只要字符序列中还有语言符号,该方法的返回值为true,否则为false。

3)countTokens();
此方法可以得到分析器中的计数变量的值。

二.Scanner类

1.说明:Scanner的对象可从字符序列中解析出程序所需要的数据

2.方法:
1)useDelimiter(正则表达式);
此方法将正则表达式作为分隔标记(就是把与正则表达式匹配的字符作为分隔符),若不指定分隔标记,那么默认空格,制表符,回行符作为解析String对象中字符序列中的单词。

2)next();
Scanner对象可调用此方法依次返回被解析的字符序列中的单词。

3)hadNext();
如果最后一个单词已被next()方法返回,那么调用此方法返回的值为false,否则为true。

4)nextInt();nextDouble();
我们可以调用此方法将数字型字符转化为int或double数据返回,如果字符不是数字型的,Scanner对象调用此方法将发生InputMismatchException异常,在处理异常时可以调用next()方法返回非数字化字符。

三.StringBuffer类

1.说明:与String类不同,StringBuffer类对象的实体的内存空间可以自动的改变大小,便于存放可变的字符序列。

2.构造方法:
1)StringBuffer();
使用此构造方法创建一个对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于16时,实体的内容量自动增加,以便于存放所增加的字符。

2)StringBuffer(int size);
此构造方法可以指定分配给该对象的实体的初始容量为参数size指定的字符个数,也会自动增加。

3)StringBuffer(String s);
此构造方法可以指定分配给该对象的实体的初始容量为参数s的序列长度再加16。

3.非构造方法
1)append方法:
StringBuffer append(String s);
此方法将String对象s的字符序列追加到当前StringBuffer对象的字符序列中,并返回当前StringBuffer对象引用。

StringBuffer append(int n);
此方法将int型数据n转化为String对象,再把该String对象的字符序列追加到当前StringBuffer中,并返回当前StringBuffer对象引用。(同理,其他数据类型一样)

StringBuffer append(Object o);
此方法将一个object对象o的字符序列表示追加到当前StringBuffer中,并返回当前StringBuffer对象引用。

2)public char charAt(int n);
此方法得到StringBuffer对象字符序列中位置为n上的字符。

3)public void setCharAt(int n,char ch);
此方法将当前StringBuffer对象字符序列位置n处的字符用参数ch指定的字符替换(n必须有意义)并返回当前对象引用。

4)StringBuffer insert(int index,String str);
此方法将参数str指定的字符插入到参数index指定的位置,并返回当前对象引用。

5)public StringBuffer reverse();
此方法可将该对象实体中的字符序列翻转,并返回当前对象引用。

6)StringBuffer delete(int startIndex,int endIndex);
此方法从对象的字符序列中删除一个子字符序列,并返回(从startIndex~endIndex-1)。

7)delete(int index);
此方法是删除位置为index处的一个字符。

8)StringBuffer replace(int startIndex,int endIndex,String str);
此方法是将位置为startIndex~endIndex-1位置的子序列用str替换。

9)StringBuffer对象可以调用length();方法获取实体中存放的字符序列的长度,也可调用capacity();方法获取当前实体的实际容量。

四.Date类和Calendar类

说明:程序设计中可能需要日期,时间等数据,而java.util包中的Date类和Calendex类,二者的实例可用于处理上述数据。
1.Date类

1)Date();
使用此构造方法创建的对象可以获取本机当前日期和时间。

2)Date(long time);
众所周知,计算机系统将其自身的时间的“公元”设置在1970年1月1日0时(格林威治时间),此方法中的参数取正数表示公元后的时间,取负数表示公元前的时间。1000表示1000ms。

2.Calendar类
1)static getInstance();
此方法可以初始化一个日历对象。

2)public final void set(int year,int month,int date);
public final void set(int year,int month,int date,int hour,int minure);
public final void set(int year,int month,int date,int hour,int minure,int second);
Calendar对象可以调用上述方法将日历翻到任何一个时间,当参数year取负数时表示公元前(真实公元)

3)public int get(int field);
此方法可以获取有关年份,月份,小时,星期等信息,参数的field的有效值由Calendar的静态常量指定,如:Calendar.get(Calendar.MONTH);返回一个整数(0表示1月依次递增);

4)public long getTimeInMillis();
此方法可以返回当前Calendar对象中时间的毫秒计时。

五.Math类

1.public static long abs(double a);
此方法返回的是a的绝对值。

2.public static double max(double a,double b);
此方法返回的是a,b的最大值。

3.public static double min(double a,double b);
此方法返回的是a,b的最小值。

4.public static double random();
此方法返回的是0~1之间的随机数(不包含0,1)。

5.public static double pow(double a,double b);
此方法返回的是a的b次幂。

6.public static double sqrt(double a);
此方法返回的是a的平方根

7.public static double log(double a);
此方法返回的是a的对数。

8.public static double sin(double a);
此方法返回的是a的正弦值

9.public static double asin(double a);
此方法返回的是a的反正弦值

10.public static double ceil(double a);
此方法返回大于a的最小整数,并将该整数转化为double型数据。

11.public static double floor(double a);
此方法返回小于a的最小整数,并将该整数转化为double型数据。

12.public static long round(double a);
此方法返回的是a的(long)Math.floor(a+0.5);,即a所谓的“四舍五入”的值。

六.BigInteger类

如果程序要处理特别大的整数,就可以用java.math包中的BigInteger类的对象。
1.public BigInteger add( BigInteger val);
返回当前对象与val的和

2.public BigInteger subtract( BigInteger val);
返回当前对象与val的差

3.public BigInteger multiply( BigInteger val);
返回当前对象与val的积

4.public BigInteger divide( BigInteger val);
返回当前对象与val的商

5.public BigInteger remainder( BigInteger val);
返回当前对象与val的余

6.public Int compareTo( BigInteger val);
返回当前对象与val的比较结果,返回1,-1,0分别表示当前对象大于,小于或等于val。

7.public BigInteger abs( );
返回当前整数对象的绝对值。

8.public BigInteger pow( int a);
返回当前对象的a次幂。

9.public String toString();
返回当前对象的十进制字符串的表示。

10.public String toString(int p);
返回当前对象p进制的字符串表示。

七.Random

1)public Random();
此构造方法是使用当前机器时间作为种子创建一个Random对象。

2)public Random(long seed);
此构造方法使用参数seed指定的种子创建一个Random对象。

3)nextInt();
如果想让Random对象调用方法返回一个0~m之间的随机数(包括0不包括n)。可以调用nextInt(int m)方法(参数m必须取正整数值)。

4)nextBoolean();
如果需要得到true和false两个表示真和假的boolean值,可以调用此方法。

八.Calss类和Console类

1.class类:
它是在java.lang包中的类,该类的实例可以帮助程序创建其他类的实例。创建对象最常见的方式就是使用new运算符和类的构造方法。
其实我们还可以使用class对象得到某个类的实例。方法:

1)public static class forName(String className) throws classNotFoundException;
此方法返回一个和参数className指定的类相关的class对象。若类在某个包中,className必须带有包名,例如:className = “java.util.Date”。

2)pulbic Object newInstance() throws InstantiationException,Illega(AccessException);
此方法就可以得到一个class类的对象。

注意:使用class对象调用newInstance()实例化一个className类的对象时,className类必须有无参构造方法。

例子:

import java.util.Date;
class Rect{
  double width,height,area;
  public double getArea(){
    area = height*width;
    return area;
    }
 }

public class Example{
  public static void main(String args[]){
    try{
      Class cs = Class.forName("Rect");
      Rect rect = (Rect)cs.newInstance();
      rect.width=100;
      rect.height=200;
      System.out.println("rect的面积"+rect.getArea());
      cs = Class.forName("java.util.Date");
      Date date = (Date)cs.newInstance();
      System.out.println(String.format("%tF %<tT %<tA",date));
    }
    catch(Exception e){
      System.out.println(e.toString());
    }
  }
}

2.Console类
如果希望在键盘输入一行文本,但不想使其在命令行显示,那么就需要使用java.io包中的Console类的对象来完成。

用法如下:
首先使用System类调用console()方法返回Console类的一个对象。
例如:Console cons=System.console();
然后调用readPasswoord()方法读取用户在键盘输入的一行文本,并将文本以一个char数组返回:
char[] password = cons.readPsaaword();

九.Pattern类和Matcher类

1.什么是模式匹配?
就是检索和指定模式匹配的字符序列。

在java中,专门提供了用来模式匹配的类:Pattern类和Matcher类,这两个类位于java.util.reges包中。
使用例子:

String s = "市话:76.8元,长途:167.38元,短信:12.68元";
String regex = "[0123456789.]+";
Pattern p=Pattern.compile(regex);
Matcher m = p.matcher(s);

其中对象m可以调用的方法有:
1)public boolean find();
此方法可寻找s和regex匹配的下一字序列,如果成功,该方法返回true,否则返回false。

2)public boolean matches();
此方法可判断s是否和regex完全匹配。

3)public boolean lookingAt();
该方法判断从s的开始位置是否有和regex匹配的字序列。

4)public boolean find(int start);
此方法判断s从参数start指定位置开始是否有和regex匹配的子序列,参数start为0时,该方法和lookAt()的功能相同。

5)public String replaceAll(String replacement);
此方法可以返回一个String对象,该String对象的字符序列是通过把s的字符序列中与模式regex匹配的子字符序列全部替换为replacement指定的字符序列得到。(s本身并无变化)。

6)public String replaceFirst(String replacement);
此方法可返回一个String对象,该对象的字符序列是通过把s的字符序列中第一个与模式regex匹配的自字符序列替换为replacement指定的字符序列得到的(注意:s自身并无变化)。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!