第八章常用实用类

8.1 String类
1.构造String对象
(1)常量对象
String类型常量也是对象,是用双引号(英文输入法输入的双引号)括起的字符序列
常量数据在程序运行期间再也不允许改变
(2)String对象
可以使用String类声明对象并创建对象,例如:——String s = new String (“we are students”);
(3)引用String常量对象
String常量是对象,可以把String常量的引用赋值给一个String对象,例如:
——String s1,s2;
——s1 = “你好”;
——s2 = “你好”;
这样,s1,s2具有相同的引用,表达式s1==s2的值为true,因而具有相同的实体
注:String类定义为final类,使得用户无法扩展String类,用户无法输出String对象的引用,输出的是对象的实体,即字符序列we are students

2.字符串的并置
String对象可以用“+”进行并置运算,即首位相接得到一个新的String对象,例如:对于
——String you = “你”;
——String hi = “好”;
——String testOne;
并置运算后得到一个新的String对象,可以将这个新的String对象的引用赋值给一个String声明的对象如:——testOne=you+hi;

3.String类的常用方法
——public int length() // 长度
——public boolean equals(String s) //实体全部相等返回true
——public boolean startsWith(String s)//自己的实体与字符串的实体进行比较前缀、public boolean endsWith(String s)//后缀
——public int compareTo(String s)//按字典序比较大小
——public boolean contains(String s)
——public int indexOf(String s)//检索开头 和public int lastIndexOf(String s)//检索最后出现
——public String substring(int starpoint)//截出新的
——public String trim( )//去掉字符串前后空格得到一个新的

4.字符串与基本数据的相互转化
例子:代码如下
在这里插入图片描述
5.对象的字符串表示
Object类有一个public String toString()方法,一个对象通过调用该方法可以获得该对象的字符串表示。一个对象调用toString()方法返回的String对象的字符序列的一般形式为:创建对象的类的名字@对象的引用是字符串表示
Object类的子类或间接子类也可以重写toString()方法,重写的方法返回的String对象的字符序列是时间的字符序列

6.字符串与字符、字节数组
1.字符串与字符数组
char [ ] toCharArray ();
2.字符串与字节数组
public byte [ ] getBytes ();
3加密解密

7.正则表达式及字符串的替换与分解
1.正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义字符,这些特殊字符称做表达式的元字符
2.字符串的替换
String对象调用public String replaceAll(String regex,String replacement)方法返回一个新的String对象,把当前String对象的字符序列中所有和参数regex匹配的子字符序列,用参数replacement的字符序列替换得到字符序列
3.字符串的分解
String类提供了一个实用的方法public String[ ] split(String regex),字符串调用该方法时,实用参数指定的正则表达式regex作为分隔标记分解出其中的单词,并将分解出的单词存放在字符串数组中

8.2StringTokenizer类
构造方法:1.StringTokenizer(String s):为String对象s构造一个分析器;使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔符
2.StringTokenizer(String s,String delim):为String对象s构造一个分析器;参数delim的字符序列中的字符的任意排列被作为分隔标记
普通字符作为分隔标记
8.3 Scanner类
Scanner对象可以解析字符序列中的单词,可构造一个Scanner对象如:Scanner scanner = new Scanner (NBA);
Scanner对象可以调用方法:useDelimiter(正则表达式);
将正则表达式作为分隔符标记(1)next()
(2)nextInt( ),nextDouble(),如果单词不是数字型单词,Scanner对象调用nextInt()或nextDouble()方法将发生InputMismatchException异常,在处理异常时可以调用next()方法返回非数字化单词
(3)hasNext()
正则表达式作为分隔标记
8.4 StringBuffer类
StringBuffer类
String类创建的字符串对象是不可修改的,即String对象一旦创建,那么实体是不可以在发生变化的

StringBuffer类,能创建可修改的字符串序列

StringBuffer类的三种构造方法:

  1. StringBuffer() 无参数,分配给实体的初始容量可容纳16个字符,长度大于16时,实体容量自动增加(StringBuffer对象通过length()方法获取实体中存放字符序列的长度,通过capacity()方法获取当前实体的实际容量)
  2. StringBuffer(int size)分配给实体的初始容量为参数size指定的字符个数,长度大于size个字符容量自动增加
  3. StringBuffer(String s)分配给实体的初始容量为参数字符串s的长度额外再加16个字符
    StringBuffer类的常用方法
    append方法
    StringBuffer(String s):将一个字符串对象追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用
    StringBuffer append (int n)将一个int型数据转化为字符串对象后再追加当前StringBuffer对象中,并返回当前对象引用
    StringBuffer append(Object o)将一个Object对象o的字符串表示追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用
    2.public char charAt(int n)和public void setCharAt(int n , char ch)
    Char charAt(int n)得到参数n指定位置上的单个字符,setCharAt(int n,char ch)将当前StringBuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换。N的值必须是非负的,并且小于当前对象对象实体中字符串序列的长度。
    3.StringBuffer insert(int index , String str)
    使用insert方法将参数str指定的字符串插入index指定的位置并返回当前对象的引用。
    4.public StringBuffer reverse()
    使用reverse()方法将该对象实体中的字符翻转,并返回当前对象的引用。
  4. StringBuffer delete (int startIndex,int endIndex)
    从当前对象实体中的字符串删除一个子字符串,并返回当前对象的引用。
    startIndex指定了需删除的第一个字符的下标,endIndex指定了需删除的最后一个字符的下一个字符的下标deleteCharAt(int index)方法删除当前StringBuffer对象实体的字符串中位置处的一个字符。
  5. StringBuffer replace(intstartIndex , int endIndex , String str)
    将当前对象实体中的字符串的一个子字符串用参数str指定的字符穿替换。被替换的子字符串由下标startIndex和endIndex指定,即从startIndex到endIndex-1的字符串被替换。

注:可使用String类的构造方法String(StringBuffer bufferstring)创建一个字符串对象。

8.5Date与Calendar类

  1. Date类
    Date类在java.util包中
    Date类的构造方法之一:
    ——Date()使用Date类的无参数构造方法创建的对象可以获取本地当前时间 如:Date nowTime = new Date(); nowTime对象中含有的日期、时间就是创建nowTime对象时的本地计算机的日期和时间
    ——Date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年
    Date类的构造方法之二:
    ——Date(long time)使用long型参数创建指定的时间

System类的静态方法public long currentTimeMillis()获取系统当前时间

2.Calendar类
Calendar类在java.util包中
使用Calendar类的static方法getInstance()可以初始化一个日历对象,如:Calendar calendar = Calendar.getInstance();
calendar对象可调用方法:
——public final void set(intyear,int month,int date)
——public final void set(intyear,int month,int date,int hour,int minute)
——public final void set(intyear,int month,int date,int hour,
int minute,int second)
其作用是将日历翻到任何一个时间
——public long getTimeInMillis()可以将时间表示为毫秒
——public final void setTime(Date date)使用给定的Date设置此Calendar的时间
——public int get(int field):可以获取有关年份、月份、小时、星期等信息
3.format方法
Formatter类的format方法:
——format(格式化模式,日期列表)
——按着“格式化模式”返回“日期列表”中所列各个日期中所含数据(年、月、日、小时等数据)的字符串表示
——Java已经将format方法做为了String类的静态方法,因此程序可以直接使用String类调用format方法对日期进行格式化

(1)格式化模式
——format方法中“格式化模式”是一个用双引号括起来的字符序列(字符串),该字符序列中的字符由时间格式符和普通字符所构成

8.6 日期的格式化
1.日期列表
——format方法中“日期列表”可以是用逗号分隔的Calendar对象或Date对象
——format方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式“日期列表”中对应的日期,二“格式化模式”中的普通字符保留原样
2.格式化同一日期
——可以在“格式化模式”中使用“<”的格式符和它前面的格式符格式同一个日期
3.不同区域的星期格式
如果想用特定地区的星期格式来表示日期中的星期,可以用format的重载方法:format(Locale locale,格式化模式,日期列表);
——其中的参数locale是一个Locale类的实例,用于表示地域
——Locale类的static常量都是Locale对象,其中US是表示美国的static常量
注:如果format方法不使用Locale参数格式化日期,当前应用程序所在系统的地区设置是中国,那么相当于locale参数去Locale.CHINA

8.7Math、BigInteger和Random类
Math类的常用类方法
Public static long abs(double a) 返回a的绝对值
Public static double max(double a,double b) 返回a,b的最大值
Public static double min(double a,double b) 返回a,b的最小值
Public static double random() 产生一个0到1之间的随机数(不包括0和1)
Public static double pow(double a,double b) 返回a的b次幂
Public static double sqrt(double a) 返回a的平方根
Public static double log(double a) 返回a的对数
Public static double sin(double a) 返回a的正弦值
Public static double asin(double a) 返回a的反正弦值

BigInteger类的常用方法
Public BigInteger add(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的和
Public BigInteger subtract(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的差
Public BigInteger multiply(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的积
Public BigInteger divide(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的商
Public BigInteger remainder(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的余
Public int compareTo(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的比较结果,返回值是1、-1或0,分别表示当前大整数对象大于、小于或等于参数指定的大整数
Public BigInteger abs() 返回当前大整数对象的绝对值
Public BigInteger pow(int a)返回当前大整数对象的a次幂
Public String toString() 返回当前大整数对象十进制的字符串表示
Public String toString(int p) 返回当前大整数对象p进制的字符串表示

Random类
Random random = new Random();
random.nextInt();
如果想让随机数生成器random返回一个0至n直接(包括0,但不包括n[0,n))的随机数,可以让random调用带参数的nextInt(int m)方法(参数m必须取正整数值)
random调用public double nextDouble()返回一个0.0值1.0之间的随机数[0,1)包括0.0,但不包括1.0

8.8 数字格式化
1.Formatter类
Formatter类提供了一个和C语言printf函数类似的format方法:format(格式化模式,值列表),该方法按着“格式化模式”返回“值列表”的字符串表示
Java已经将format方法做为了String类的静态方法,因此程序可以直接使用String类调用format方法对数字进行格式化
(1)格式化模式:format方法中“格式化模式”是一个用双引号括起来的字符序列(字符串),该字符序列中的字符由格式符和普通字符所构成,format方法返回的字符串就是“格式化模式”中的格式符被替换为它得到的格式化结果后的字符串
(2)值列表:format方法中的“值列表”是用逗号分隔符的变量、常量或表达式
(3)格式化顺序:format方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式“值列表”中对应的值,而“格式化模式”中的普通字符保留原样
注1:改变默认顺序(左向右)进行格式化,在格式符前面添加索引符号index$
注2:如果准备在“格式化模式”中包含普通的%,在编写代码时需要连续键入两个%

2.格式化整数
(1)%d,%o,%x,和%格式符可格式化byte、Byte、short、Short、int、Integer、long和Long型数据
(2)修饰符:加号修饰符“+”格式化正整数时,强制添加正号
逗号修饰符“,”格式化整数时,按“千”分组
(3)返回字符串的长度

3.格式化浮点数
(1)%f,%e(%E),%g(%G),和%a(%A)格式化float、Float、double和Double
%f:将值格式化为十进制浮点数,小数保留6位
%e(%E):将值格式化为科学计数法的十进制的浮点数
(2)修饰符:加号修饰符“+”格式化正整数时,强制添加正号
逗号修饰符“,”格式化浮点数时,将整数部分按“千”分组

8.9 Class类和Console类
Class类
使用Class实例化一个对象
注:使用class对象调用newInstance()实例化一个className类的对象时,className类必须有无参数的构造方法。
获取类的有关信息
Class对象经常调用的方法如下:
String getName() 返回类的名字
Constructor [] getDeclaredConstructor 返回类的全部构造方法
Field [ ] getDeclaredFields() 返回类的全部成员变量
Method [ ] getDeclaredMethods() 返回类的全部方法

Console类
Console类在java.io包中
Console类的对象完成在键盘输入一行文本,但不想该文本回显,既不在命令行显示;首先使用System类定义console()方法返回一个Console类的一个对象,如:Console cons = System.console();然后,cons调用readPassword()方法读取用户在键盘输入的一行文本,并将文本以一个char数组返回:char [ ] passwd = cons.readPassword();

8.10 Pattern与Matcher类
Pattern和Matcher类
模式匹配就是检索和指定模式匹配的字符串
建立模式对象
使用正则表达式regex做参数得到一个称为模式的Pattern类的实例pattern
Pattern pattern = Pattern.compile(regex);
regex是一个正则表达式,称为模式对象使用的模式。
Pattern类也可调用类方法compile(String regex,int flags)
返回一个Pattern对象,参数flags可取下列有效值:
Pattern.CASE_INSENSITIVE
Pattern.MULTILINE
Pattern.DOTALL
Pattern.UNICOE_CASE
Pattern.CANON_EQ
得到匹配对象
得到可检索字符串input的Matcher类的实例matcher(成为匹配对象)
Matcher matcher = pattern.matcher(input);

模式对象pattern调用matcher(CharSequence input)方法返回一个Matcher对象matcher,称为匹配对象,参数input用于给出matcher要检索的字符串

Matcher对象matcher可使用下列方法寻找字符串input中是否有和模式reg
ex匹配的子序列(regex是创建模式对象pattern时使用的正则表达式)
Public Boolean find():寻找input和regex匹配的下一子序列,若成功返回true,否则返回false
Public Boolean matches():matcher调用该方法判断input是否完全和regex匹配
Public Boolean lookingAt():matcher调用该方法判断从input的开始位置是否有和regex匹配的子序列
Public Boolean find(int start)调用该方法判断input从参数start指定位置开始是否 有和regex匹配子序列
Public String replaceAll(String replacement):matcher调用该方法可返回一个字符串,该字符串是通过把input中与模式regex匹配的子字符串全部替换为参数replacement指定的字符串得到的(注input本身没变化)

Public String replacefirst(String replacement):matcher调用该方法可返回一个字符串,该字符串是通过把input中与模式regex匹配的子字符串替换为参数replacement指定的字符串得到的(注input本身没变化)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值