《Java程序设计》第七周学习总结

20175230 2018-2019-1 《Java程序设计》第七周学习总结

教材内容总结

String

  • Java专门提供了用来处理字符序列的String类。String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String类。需要注意的是Java把String类声明为final类,因此用户不能扩展String类,即String类不可以有子类。
  • 构造String对象
    String对象,习惯地被翻译为字符串对象。
    (1)可以使用String类声明对象并创建对象,例如String s = new String("we are student");
    (2)String常量是对象,因此可以把String常量的引用赋值给一个String对象,例如
    String s1,s2; s1 = "你好"; s2 = "你好";
  • 字符串的并置
  • String类的常用方法
    public int length():获取一个字符串的长度
    public boolean equals(String s):判断当前String对象的字符序列是否与参数s指定的String对象的字符序列相同
    public boolean startsWith(String s)判断当前String对象的字符序列前缀是否是参数指定的String对象s的字符序列
    public int compareTo(String s):按字典序与参数s指定的字符序列比较大小
    public boolean contains(String s):String对象调用contains方法判断当前String对象的字符序列是否包含参数s的字符序列
    public int indexOf (String str):String对象调用方法从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是–1
    public String substring(int startpoint):字符串对象调用该方法获得一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的startpoint位置至最后位置上的字符所得到的字符序列
    public String trim() :得到一个新的String对象,这个新的String对象的字符序列是当前String对象的字符序列去掉前后空格后的字符序列
  • 字符串与基本数据的相互转化
    Java.lang包中的Integer类调用其类方法:
    public static int parseInt(String s)
    可以将由“数字”字符组成的字符串,如“876”,转化为int型数据
                  String s = “876"; 
                  x = Integer.parseInt(s); ```
- 对象的字符串表示
    Object类有一个 public String toString()方法,一个对象通过调用该方法可以获得该对象的字符序列表示。一个对象调用toString()方法返回的String对象的字符序列的一般形式为:
           创建对象的类的名字@对象的引用的字符串表示
- 字符串与字符数组、字节数组
- 正则表达式及字符串的替换与分解
    正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义字符,这些特殊字符称做正则表达式中的元字符

###StringTokenizer类
- 当分析一个String对象的字符序列并将字符序列分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类,该类有两个常用的构造方法。
    - ```StringTokenizer(String s):```
    - ```StringTokenizer(String s, String delim):```

###Scanner类
-  Scanner对象
      Scanner对象可以解析字符序列中的单词

###StringBuffer类
- StringBuffer对象
    - 与String类不同,StringBuffer类的对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列
    - StringBuffer类有三个构造方法:
        StringBuffer()
        StringBuffer(int size)
        StringBuffer(String s)
- StringBuffer类的常用方法 
    - 1.append方法
    - 2.public char charAt(int n)和public void setCharAt(int n , char ch)
    - 3.StringBuffer insert(int index, String str)
    - 4.public StringBuffer reverse()
    - 5.StringBuffer delete(int startIndex, int endIndex)
    - 6.StringBuffer replace( int startIndex ,int endIndex, String str)

###Date与Calendar类
- Date类
    - 1.使用无参数构造方法
    - 2.使用带参数的构造方法
- Calendar类
    - Calendar类在java.util包中。使用Calendar类的static方法getInstance()可以初始化一个日历对象

###日期的格式化
- format方法
     ```format(格式化模式,日期列表);```
- 不同区域的星期格式
    ``` format(Locale locale,格式化模式,日期列表);```其中的参数locale是一个Locale类的实例,用于表示地域
###Math、BigInteger和Random类
- Math类
    在编写程序时,可能需要计算一个数的平方根、绝对值或获取一个随机数等。以下是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的最小值。
- BigInteger类
    BigInteger类的常用方法
        - public BigInteger add(BigInteger val) 返回当前对象与val的和。
        - public BigInteger subtract(BigInteger val) 返回当前对象与val的差。
        - public BigInteger multiply(BigInteger val) 返回当前对象与val的积。
- Random类
    使用Random类的如下构造方法
         ````public Random();
              public Random(long seed);````创建Random对象

###数字格式化
- format方法 
    程序可以使用String类调用format方法对数字进行格式化。
- 格式化整数
    1.%d,%o,%x和%X
    2.修饰符
    3.数据的宽度
- 格式化浮点数
    1.float、Float、double 和Double   %f,%e(%E),%g(%G)和%a(%A)格式符可格式化float、Float、double和Double。
    2.修饰符
    3.限制小数位数与数据的“宽度”

###Class类与Console类
- class类
    使用Class的类方法得到一个和某类(参数className指定的类)相关的Class 对象
- Console类

###Pattern与Matcher类
- 使用Pattern类和Matcher的步骤如下。
    1.建立Pattern对象
    2.得到Matcher对象
-

##代码调试中的问题与解决方法
- 问题一    example8_7出现如下错误
![](https://img2018.cnblogs.com/blog/1592136/201904/1592136-20190413152053817-1478520199.png)

![](https://img2018.cnblogs.com/blog/1592136/201904/1592136-20190413162753143-579923156.png)


- 问题一解决方法   在Linux系统和windows的IDEA中无法正常运行,但在windows系统的命令提示符中可以正常运行,没有找到解决方法
![](https://img2018.cnblogs.com/blog/1592136/201904/1592136-20190413153435412-1301635442.png)
- 问题二  在Linux系统的终端里,输入密码时,已经输入的密码不显示出来,无法知道输入的密码是否正确
![](https://img2018.cnblogs.com/blog/1592136/201904/1592136-20190413164259698-238641783.png)

- 问题三    在IDEA中,调试时无法打开属性框,做实验时,也无法打开设置
- 问题三解决方法   经过将自己的IDEA与他人的IDEA对比,发现我刚安装IDEA时进行了汉化处理,于是我删除了汉化包,然后IDEA可以正常使用了
##[代码托管](https://gitee.com/tx20175230/20175230)
![](https://img2018.cnblogs.com/blog/1592136/201904/1592136-20190413165522068-1338517635.png)
原文地址:https://www.cnblogs.com/tengxing/p/10691955.html