一.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自身并无变化)。
来源:CSDN
作者:学代码的牧之
链接:https://blog.csdn.net/c1776167012/article/details/103922628