20175120彭宇辰 《Java程序设计》第七周学习总结

#教材内容总结

第八章 常用实用类

一、String类

  • String类用来处理字符序列,在java.lang包中,程序可以直接使用String类。需要注意的是Java把String类声明为final类,因此用户不能扩展String类,即String类不可以有子类。

二、常量对象:

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

三、String对象:

  • 字符串常量对象是用双引号括起的字符序列,例如:"你好"、"12.97"、"boy"等。String常量被放在常量池中。
  • 可以使用String类声明对象并创建对象,例如:String s = new String("we are students");

PS:用户无法输出String对象的引用:

  • Syste.out.println(s);输出的是对象的实体。

四、String的两个较常用的构造方法

  • String (char a[])用一个字符数组a创建一个String对象。

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

五、字符串的并置

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

  • 如果是两个常量进行并置运算,那么得到的仍然是常量,如果常量池没有这个常量就放入常量池。

  • 参与并置运算的String对象,只要有一个是变量,那么Java就会在动态区存放所得到的新String对象的实体和引用。

六、String类的常用方法

  • public int length():获取一个字符串的长度

  • public boolean equals(String s):判断当前String对象的字符序列是否与参数s指定的String对象的字符序列相同

  • public boolean startsWith(String s):
    判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列

  • public boolean endsWith(String s):
    判断当前String对象的字符序列后缀是否是参数指定的String对象s的字符序列

  • public int compareTo(String s):按字典序与参数s指定的字符序列比较大小。
    • 如果当前String对象的字符序列与s相同,该方法返回值0;如果大于s的字符序列,该方法返回正值;如果小于s的字符序列,该方法返回负值。
    • 如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差。best.compareTo(besti)=-1
    • 如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:this.charAt(k)-anotherString.charAt(k) 。best.compareTo(student)=-17
  • public boolean contains(String s):String对象调用contains方法判断当前String对象的字符序列是否包含参数s的字符序列

  • public int indexOf (String str):String对象调用方法从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是–1。

  • public int lastIndexOf(String s):从当前String对象的字符序列的0索引位置开始检索最后一次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是-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对象的字符序列去掉前后空格后的字符序列。

七、字符串与基本数据的相互转化

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

  • public static int parseInt(String s)可以将由“数字”字符组成的字符串。
  • public static byte parseByte(String s) throws NumberFormatException 
  • public static short parseShort(String s) throws NumberFormatException
  • public static long parseLong(String s) throws NumberFormatException
  • public static float parseFloat(String s) throws NumberFormatException
  • public static double parseDouble(String s) throws NumberFormatException 

可以使用String 类的类方法将数值转化为String对象:

  • public static String valueOf(byte n)
  • public static String valueOf(int n)
  • public static String valueOf(long n)
  • public static String valueOf(float n)
  • public static String valueOf(double n)

八、对象的字符串表示

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

九、字符串与字符数组

  • 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对象的全部字符序列存放到数组中。

十、字符串与字节数组

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

  • 相关方法:
    public byte[] getBytes():使用平台默认的字符编码,将当前String对象的字符序列存放到字节数组,并返回数组的引用。
    public byte[] getBytes(String charsetName):使用参数指定字符编码,将当前String对象的字符序列存放到字节数组,并返回数组的引用。

十一、正则表达式

  • 正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义字符,这些特殊字符称做正则表达式中的元字符。

  • String对象调用public boolean matches(String regex)方法可以判断当前String对象的字符序列是否和参数regex指定的正则表达式匹配。

#代码调试过程中的问题与解决

问题一:代码上传时,用git pull合并代码出现下面的页面,然后无法继续操作

 

解决过程:我首先是用

git merge --abort

  将刚刚关掉的页面回退,然后再次进入这个页面,按Ctrl+X就能解决问题了

问题二:例8.6,第六行显示找不到符号

解决方法:将getChar()写成getChars()

问题三:例8.7运行结果出现问题

未解决

问题四:例8.8编译未成功

未解决

代码量

posted @ 2019-04-15 13:33  20175120彭宇辰  阅读(110)  评论(0编辑  收藏  举报