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

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

1.String类

  • Java专门提供了用来处理字符序列的String类。
  • String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String类。
  • 需要注意的是Java把String类声明为final类,因此用户不能扩展String类,即String类不可以有子类。

2.构造String对象

  • 常量对象:字符串常量对象是用双引号括起的字符序列,例如:"你好"、"12.97"、"boy"等。
  • String对象:

可以使用String类声明对象并创建对象,例如:

 String  s = new String("we are students");

 String  t = new String("we are students");

  • 另外,用户无法输出String对象的引用。也可以用一个已创建的String对象创建另一个String对象,如:

 String tom = new String(s);

  • String类还有两个较常用的构造方法。

(1)String (char a[])用一个字符数组a创建一个String对象,如:

      char a[] = {'J','a','v','a'};

     String s = new String(a);

 过程相当于

      String s = new String("Java");

(2)String(char a[],int startIndex,int count) 提取字符数组a中的一部分字符创建一个String对象,参数startIndex和count分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数,如:

 char a[] = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};

 String s = new String(a,2,4);

 相当于

 String s = new String("贰叁肆伍");

  • 引用String常量:String常量是对象,因此可以把String常量的引用赋值给一个String对象。

3.字符串的并置

  • String对象可以用“+”进行并置运算,即首尾相接得到一个新的String对象。

4.String的常用方法:

  • public int length():获取一个字符串的长度
  • public boolean equals(String s):判断当前String对象的字符序列是否与参数s指定的String对象的字符序列相同                
  • public boolean startsWith(String s)
  • 判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列,例如:

    String tom = "天气预报,阴有小雨",jerry = "比赛结果,中国队赢得胜利";

    tom.startsWith(“天气”)的值是true;

    tom.endsWith("大雨")的值是false,

  • public int compareTo(String s):按字典序与参数s指定的字符序列比较大小。

如果当前String对象的字符序列与s的相同,该方法返回值0,如果大于s的字符序列,该方法返回正值;如果小于s的字符序列,该方法返回负值。

  • public boolean contains(String s):String对象调用contains方法判断当前String对象的字符序列是否包含参数s的字符序列,例如,tom="student",那么tom.contains("stu")的值就是true,而tom.contains("ok")的值是false。
  • public int indexOf (String str):String对象调用方法从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是–1,其相关方法:

   indexOf(String s ,int startpoint)

   lastIndexOf (String s)

    例如 String tom = "I am a good cat";

              tom.indexOf("a");//值是2

              tom.indexOf("good",2);//值是7

              tom.indexOf("a",7);//值是13

              tom.indexOf("w",2);//值是-1

  • public String substring(int startpoint):字符串对象调用该方法获得一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的startpoint位置至最后位置上的字符所得到的字符序列。String对象调用substring(int start ,int end)方法获得一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的start位置至end–1位置上的字符所得到的字符序列。
  • public String trim() :得到一个新的String对象,这个新的String对象的字符序列是当前String对象的字符序列去掉前后空格后的字符序列。

5.字符串与基本数据的相互转化

  • Java.lang包中的Integer类调用其类方法:

      public static int parseInt(String s)

      可以将由“数字”字符组成的字符串,如“876”,转化为int型数据,

6.对象的字符串表示

  • 在子类中我们讲过,所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个

                 public String toString()

方法,一个对象通过调用该方法可以获得该对象的字符序列表示。一个对象调用toString()方法返回的String对象的字符序列的 一般形式为:创建对象的类的名字@对象的引用的字符串表示

7.字符串与字符、字节数组

  •     字符串与字符数组

String 类的构造方法:

String(char[]);

String(char[],int offset,int length)分别用字符数组中的全部字符和部分字符创建字符串对象

将String对象的部分字符序列存放到数组中的方法:public void getChars(int start,int end,char c[],int offset )

将String对象的字符序列存放到数组中的方法:public char[] toCharArray()

  • 字符串与字节数组

String(byte[])用指定的字节数组构造一个字符串对象。

String(byte[],int offset,int length) 用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。

public byte[] getBytes()使用平台默认的字符编码,将当前String对象的字符序列存放到字节数组,并返回数组的引用。

public byte[] getBytes(String charsetName)使用参数指定字符编码,将当前String对象的字符序列存放到字节数组,并返回数组的引用。     

  • 使用一个String对象password的字符序列作为密码对另一个String对象sourceString的字符序列进行加密,操作过程如下。将password的字符序列存放到一个字符数组中,char [] p = password.toCharArray();

8.正则表达式及字符串的替换与分解

  •  正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义字符,这些特殊字符称做正则表达式中的元字符。比如,"\\dcat"中的\\d就是有特殊意义的元字符,代表0到9中的任何一个,"0cat","1cat","2cat",…,"9cat"都是和正则表达式"\\dcat"匹配的字符序列。String对象调用public boolean matches(String regex)方法可以判断当前String对象的字符序列是否和参数regex指定的正则表达式匹配。
  • 字符串的替换:public String replaceAll(String regex,String replacement)
  • 字符串的分解:public String[] split(String regex)使用参数指定的正则表达式regex做为分隔标记分解出其中的单词,并将分解出的单词存放在字符串数组中。

9.StringTokenizer类

  • StringTokenizer类在java.util包中,有两个常用的构造方法:

StringTokenizer(String s):为String对象s构造一个分析器。使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔标记。

StringTokenizer(String s, String delim为String对象s构造一个分析器。参数delim的字符序列中的字符的任意排列被作为分隔标记。

10.Scanner类

  • 使用Scanner类从字符串中解析程序所需要的数据。
  • Scanner对象可以调用方法:useDelimiter(正则表达式);

11.StringBuffer类

  • String对象的字符序列的字符不能被修改、删除,即String对象的实体是不可以再发生变化的。
  • StringBuffer类的对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列。
  • StringBuffer类的常用方法_:
  • StringBuffer append(String s),StringBuffer append(int n),StringBuffer append(Object o)
  • StringBuffer insert(int index, String str) ,public StringBuffer reverse() ,
  • StringBuffer delete(int startIndex, int endIndex),StringBuffer replace(int startIndex,int endIndex,String str):

12.Date与Calendar类

  • Date类的构造方法之一:

Date()使用Date类的无参数构造方法创建的对象可以获取本地当前时间。例: Date nowTime=new Date();

  • Date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年。
  • Date类的构造方法:Date(long time)
  • 使用Calendar类的static方法 getInstance()可以初始化一个日历对象,  如:Calendar calendar= Calendar.getInstance();
  • calendar对象可以调用方法:

public final void set(int year,int month,int date)

public final void set(int year,int month,int date,int hour,int minute)

public final void set(int year,int month, int date, int hour, int minute,int second)

其作用是将日历翻到任何一个时间

13.日期的格式化

  • Formatter类的format方法:format(格式化模式, 日期列表)。format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列中的字符由时间格式符和普通字符所构成。例如:"日期:%ty-%tm-%td"
  • 日期列表:format方法中的“日期列表”可以是用逗号分隔的Calendar对象或Date对象。
  • 格式化同一日期:可以在“格式化模式”中使用“<”,比如:"%ty-%<tm-%<td"中的三个格式符将格式化同一日期,即含有“<”的格式符和它前面的格式符格式同一个日期。
  • 如果想用特定地区的星期格式来表示日期中的星期,可以用format的重载方法format (Locale locale,格式化模式,日期列表);

14.Math、BigInteger和Random类

  • Math类在java.lang包中。Math类包含许多用来进行科学计算的类方法,这些方法可以直接通过类名调用。
  • java.math包中的BigInteger类提供任意精度的整数运算。
  • Java提供了更为灵活的用于获得随机数的Random类(该类在java.util包中)。 Random类的如下构造方法:public Random();public Random(long seed);

 15.数字格式化

  • 程序可以直接使用String类调用format方法对数字进行格式化。
  • 格式化模式:format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列中的字符由格式符和普通字符所构成。
  • 值列表:format方法中的“值列表”是用逗号分隔的变量、常量或表达式。
  • 格式化顺序:format方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式化“值列表”中对应的值,而“格式化模式”中的普通字符保留原样。
  • %d,%o,%x和%格式符可格式化byte、Byte、short、Short、int、Integer、long和Long型数据。
  • 加号修饰符"+"格式化正整数时,强制添加上正号,例如,%+d将123格式化为"+123"。
  • 数据的宽度就是format方法返回的字符串的长度。规定数据宽度的一般格式为“%md”,其效果是在数字的左面增加空格;或"%-md“,其效果是在数字的右面增加空格。
  • %f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double。

    %f 将值格式化为十进制浮点数,小数保留6位。%e(%E) 将值格式化为科学记数法的十进制的浮点数(%E在格式化时将其中的指数符号大写,例如5E10)。

  • "%.nf"可以限制小数的位数,其中的n是保留的小数位数。

 16.Pattern与Matcher类

  • ①建立模式对象:使用正则表达式regex做参数得到一个称为模式的Pattern类的实例pattern。模式对象是对正则表达式的封装。Pattern类调用类方法compile(String regex)返回一个模式对象,其中的参数regex是一个正则表达式, 称为模式对象使用的模式。
  • ②得到匹配对象:模式对象pattern调用matcher(CharSequence input)方法返回一个Matcher对象matcher,称为匹配对象             

猜你喜欢

转载自blog.csdn.net/Air_JQM/article/details/84633717