201711671106《Java程序设计》第八章学习总结

教材学习内容总结

第八章是常用实用类的介绍 java中实用类有以下几个:

String类 StringTokenizer类 Scanner类 StringButter类 Date类 Calendar类 Math类 BigInterger类

Random类 Class类 Console类 Pattern类 Match类,本章还介绍了日期格式化与数字格式化

String类

String类对象 如:“你好” 

声明对象:(1) String s=new String(''Java') (2)char a[]={'J','a','v','a'} String s =new String(a);(3)String (char a[],int startIndex,int count)

常用方法:

(1)public int length()  获取一个String对象的字符序列的长度

(2)public boolean equals(String s)调用此方法比较当前String 对象的字符序列是否与参数s指定的String对象的字符序列相同,若相同,返回true;否则false。(

 (3)public boolean startsWith(String s)、public boolean endsWith(String s)调用此方法,判断当前String对象的字符序列前缀是否参数指定的String对象s的字符序列。String tom='天气预报'  tom.startswith("天气")=ture   同理endwith方法

(4)public int compareTo(String s)按字典序参数指定的String对象s字符系列比较大小。如果相同,则返回0,大于则返回正值,若小于则返回负。如String str="abcde",则str.compareto("boy")<0,To("aba")>0.

(5) public boolean contains(String s)调用此方法判断String 对象的字符序列是否包含参数s

(6)public int indexOf (Strings) 从0索引位置开始检索首次出现str的字符序列的位置  返回该位置; public int lastIndexOf(String s) 从0索引位置开始检索最后一次出现str的字符序列的位置  返回该位置; 

(7)public String substring(int startpoint)调用该方法获得新对象,复制从startpoint位置到最后的字符序列;而substring(int start,int end)获得从start到end-1的字符序列。

(8)public string trim() 获得新的字符系列,当前字符对象去掉前后空格的字符序列。

字符间的转化:java.lang包中的Integer类调用方法public static int parseInt(String s)将用数字组成的字符序列转化为int型数据。

而又可以将数值转化为String对象 public static String valueOf(int n).。

对象的字pubilc String toString()返对象的字符串表示。符串表示:

字符串与字符数组:

将String对象的字符序列存放到数组:public void getchars(int start,int end,char c[],int offset) 从start 到 end-1,存放在数组的offset 位置;另一方法:public char[] toCharArray() 将字符序列全部字符存放在长度足够的数组中。

字符串与字节数组:

String的构造方法String(byte[])用指定的字节数组构造一个String对象。String(byte[],int offset,int length)用指定字节数组的起始位置offset到length字节获取一个对象;

public byte[]get Bytes()方法使用默认的字符编码存放对象的字符序列到字节数组中,返回数组引用;

public byte[]get Bytes(String charsetName)方法使用参数指定字符编码,将对象的字符序列到字节数组中,返回数组引用;

正则表达式:

String对象的字符序列,含有特殊含义的字符。如:"."代表任意字符  其他具体见P187

字符串可通过调用public String replaceALL(String regex,String replacement)方法返回对象,把当前对象的字符序列中与regex匹配的字符序列,用参数replacement的字符系列替换字符序列,如:String str=‘12hello567bird’.replaceAll("[a-zA-Z]+","你好"),将字符序列中的英文用你好替换,变成12你好567你好。

字符串的分解:方法pubilc String[] spilt(String regex),调用该方法使用指定的regex正则表达式分解出单词并存放于String数组。

StringTokenizer类:

当分析一个String对象的字符系列并将字符序列分解成可被独立使用的单词时,可用StringTokenizer,此方法不需正则表达式作分隔标记。有两个常用的构造方法:

(1)StringTokenizer(String s):为String对象s构造一个分析器。使用默认的分隔标记如空格,换行。

(2)StringTokenizer(String s,String delim)以参数中的字符序列中的字符的任意排序作为分隔标记。

Scanner类:

Scanner对象:可以解析字符系列的单词。如:String NBA=“love you”  Scanner scanner=new Scanner(NBA);可用useDelimiter(正则表达式)作为分隔标记;若不指定,则默认用空白字符。

StringBuffer类:

StringBuffer对象 与String不同,因为对象的实体的内存空间可以自由改变大小。如:StringBuffer s=new Stringbuffer(“i like”),可调用append 追加如 s.append(''basketball'')。

三个构造方法:StringBuffer() StringBuffer(int size) StringBuffer(String s) 方法一可以容纳16字符,大于16则自动增加,可通过length增加长度,通过capacity()获取实际长度;第二个可以直接size;第三个可以给实体字符序列+16.

StringBuffer类的常用方法:

(1)append()  如append(String s)方法在原有的字符串后面添加字符串,返回的是添加后的StringBuffer对象

(2)charAt( ),返回此序列中指定索引处的 char 值   setCharAt(int index, char ch ),将给定索引处的字符设置为 ch。

(3)public StringBuffer insert(int offset,String str)  在字符串缓冲区的第offset个字符后面插入指定字符串

(4)/public StringBuffer reverse(),将字符串反转

(5)public StringBuffer delete(int start,int end)   从字符缓冲区中从start索引删除到end索引所对应的字符,其中包括start索引不包括end索引对应的值

(6)StringBuffer replace(int startindex,int endindex,String str)将对象的字符系列的一个子字符序列用参数str替换,被替换的子序列由startindex和endindex-1替换。

Date类与Calendar类:

date类:(1)使用无参数构造方法 Date nowTime =new Date(); (2)带参 Date date1=new Date(1000);(2)带参数的构造方法 Date(long time)

Calendar类 :使用Calendar中的getInstance方法初始化日历对象,然后调用方法翻到任意日期。如:

Calendar calendar =Calendar.getInstance(); 然后调用方法void set(int year,int month,int date,int hour,int minute,int second)。

calendar对象调用public int get(int field)可以获取有关年份、月份、小时、星期等信息。

calendar对象嗲用public long getTimeInMills()可以返回当前calendar对象中的时间毫秒计时。

日期的格式化

format方法:format(格式化模式,日期列表)

格式化模式:format方式中的“格式化模式”是一个用双引号括起的字符序列,该字符序列中的字符由时间格式符普通字符构成。

日期列表:format方法中的“日期列表”可以是用逗号分隔的Calendar对象或Date对象。保证:格式化模式中格式符个数与日期列表中的日期个数相同。

格式化同一日期:可以在格式化模式中使用“<",格式同一个日期。

不同区域的星期格式:format(Locate locale,格式化模式,日期列表) 方法 用特定区域表示日期,例如 String s=String.format(Locale.JAPAN,"%tA(%<tF)",new Date());

Math类 用于程序方法中进行数学计算,例如:开平方根,绝对值 具体方法见P203

BigInter类: 用于处理较大整数的对象之间的类,注若字符串参数val有非数字字符则会异常。

Random类 :产生随机数  (1)调用random()返回一个0~1的随机数 

(2)public Random() 创建一个random对象  public Random(long seed) 用指定的参数seed创建对象

(3)nextInt(int n)返回一个0-n的随机数 nextDouble(n)返回一个0.0~1.0的随机数 

数字格式化 :使用format方法对数字进行格式化

格式化模式:format(格式化模式,日期列表)中的“格式化模式”是一个用双引号括起的字符序列,该字符序列中的字符由格式符和普通字符构成。 例如:String s=String。format(“%.2f”,3.141592)得到3.14

值列表 用逗号分隔的变量、常量和表达式。例如:String s=String.format(%d元%0.3f公斤%d台,888,999,777666,123)  得到888元999.778公斤123台。

格式化顺序 默认从左到右顺序使用格式化模式格式化 例如String s=String。format("从左到右:%d,%.3f,%d",x,y,100)

得到s :从左到右:888,3.142,100

格式化整数:%d、%o、%x、%X可以格式化byte、Byte、Short、short、int、Interger、long、Long 例如:

%d将值格式化成十进制整数,%o将值格式化成八进制整数,%x将值格式化成小写的十六进制整数,例如abc58,%X将值格式化成小写的十六进制整数,ABC58.

修饰符:在格式化整数时候加上符号或者按照某种形式格式化,例如+强制加上+,“,”按千分组。

数据的宽度:格式“%md” 增加空格,“%-md”在数字后面加空格

格式化浮点数:float、Float、double、Double

%f-十进制 %e(E)-格式化为科学记数法的十进制浮点数、%g(G)、%a(A)格式化浮点数

修饰符与宽度同上。

Class类与Console类

class类:帮助其他程序创建其他类的实例,例如用class对象得到某个类的实例:

①:使用Class类得到一个和某类(参数ClassName指定的类)相关的Class对象:public static Class forName(String className)throws ClassNotFoundException 返回一个与参数Classname指定的类相关的Class对象。

②:在①中获得Class对象调用 public static newInstance() throws InstantiationException,IllegalAccessException 得到className对象。

Console类:在键盘输入一行文本,但不在命令行显示

步骤:①调用console()方法返回Console返回一个对象 Console cons=System。console();然后cons调用readPassword读取文本,并将文本以char数组返回 char[] passwd=cons.readPassword();

模式匹配:检索和制定模式匹配的字符序列,Pattern类和Matcher类

假设有String input=“hello,good morning,this is a good idea” 要知道input的字符序列从那个开始那个结束曾出现字符序列good,步骤:①建立Pattern对象 Pattern pattern=Pattern。compile(regex) ②用matcher方法检索String对象input进行对象匹配。

猜你喜欢

转载自blog.csdn.net/Vring_Jan/article/details/84728530