Java第八章常用实用类复习笔记

8.1String类

String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String类。
String类被定义位final类,String不能扩展,String类不可以有子类

8.11 构造String对象

又被称为字符串类

  1. 常量对象
    String常量也是对象,是用双引号括起的字符序列
  2. String对象
    可以使用String类声明对象并创建对象
String s=new String("we are studients");
String s1=new String("we are studients");

s!=s1返回true
对象无法输出String对象的实体,只能输出引用,也就是we are studients

String类的另外两个常用构造方法

char a[]={'a','b','c','d'};
String s=new String(a);
char a[]={'a','b','c','d'};
String s=new String(a,2,3);//包括3
  1. 引用String
String s1,s2;
s1="您好";
s2="您好";

s1==s2返回true

public class Example8_1 {
  public static void main(String args[]) {
       String s1,s2;
       s1=new String("天道酬勤");
       s2=new String("天道酬勤");
       System.out.println(s1.equals(s2));     //输出结果是:true
       System.out.println(s1==s2);            //输出结果是:false
       String s3,s4; 
       s3="勇者无敌";
       s4="勇者无敌"; 
       System.out.println(s3.equals(s4));     //输出结果是:true
       System.out.println(s3==s4);            //输出结果是:true
    }
}

**疑问:为什么String you="you"是一个变量?**不是这个是变量,而是两个相加成为了一个变量

8.1.2字符串的并置

String对象可以用"+"进行并置运算

String you="you";
String hi="are";
String testone=you+hi;

**如果参与并置运算的String对象,只要有一个是变量,那么Java就会在动态区存放所得到所得到的新String对象的实体和引用。you+hi相当于new String()

8.1.3String类常用的方法

  1. public int length()
    String中的length()获取一个String对象的字符序列长度
  2. public boolean equals(String s)
    比较当前String对象的字符序列是否与参数s指定的String对象字符序列相同
  3. public boolean equalsIgnore-Case(String)
    与equals相似,这个忽略大小写的问题
  4. public boolean startsWith(String s) \ \ public boolean endsWith(String s)
    判断当前对象的字符串序列前缀//(后缀)是否参与指定的对象s字符序列
  5. public int compareTo(String s)方法
    String对象调用该方法,按字典序与参数指定的String对象s的字符序列比较大小
    如果相同 返回0 。 如果大于, 返回大于0 。如果小于,返回小于0。
  6. public int compareToIgnoreCase(String s)
  7. Arrays类中的sort Arrays.sort(b);
  8. public boolean contains(String s)
    当前字符序列是否包含s
  9. public int indexOf(String s)// public int lastIndexof(String s)
    从前开始索引s第一次//(最后一次)出现的位置,成功时返回位置的数字信息,失败返回-1
    indexOf(String str,int startpoint) startpoint指定检索开始的位置
  10. public String substring(int startpoint)
    产生一个新的String对象,新的String对象的字符序列是复制当前String对象的字符序列中的startpoint位置至最后位置上的字符所得到的字符序列
    substring(int start,int end) 从start开始到达end-1
  11. public String trim()
    得到一个新的String对象,为当前String对象去掉前后空格

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

java.lang包中的Integer类调用其类方法public static int parseInt(String s)可以将“数字”构成的字符序列转化为int型数据

Integer.parseInt(s)
Double.parseDouble(s)
Long.parseLong(s)

用String.valueof()将数字转化为String

public class Example8_4 {
   public static void main(String args[]) {
      double aver=0,sum=0,item=0;
      boolean computable=true; 
      for(String s:args) {
         try{ item=Double.parseDouble(s);
              sum=sum+item;
         }
         catch(NumberFormatException e) {
              System.out.println("您键入了非数字字符:"+e);
              computable=false;
         }
      }
      if(computable)
         System.out.println("sum="+sum); 
  }
}

main方法中的参数args能接受用户从键盘输入的字符序列

8.1.5对象的字符串表示

使用一个public String toString()方法可以得到一个对象的字符串表示

8.1.6 字符串与字符数组、字节数组

String对象提供了将String对象的字符序列存放到数组的方法:public void getChars(int start,int end,char c[],int offset).
String对象调用getChars()方法将当前String对象的字符序列的一部分字符复制到参数c指定的数组中,将字符序列中从位置start到end-1位置上的字符复制到数组C中,并且从数组c的offset处开始存放这些字符。值得注意的是,必须保证数组c能容纳下要被复制的字符
另外还有一个public char[] toCharArray()将String对象的字符序列的全部字符存放在一个字符数组中

public byte[ ] getBytes() 方法使用平台默认的字符编码,将当前String对象的字符序列存放到字节数组中,并返回数组的引用
getBytes(String charsetName)可以指定字符编码,但是需要抛出UnsupportedEncodingException异常先
GB2312 中文是两个编码
字符串的加密算法

char [] p=password.toCharArray();

由此得到
c0=char(a0+p[0])…

8.17 正则表达式

String对象调用``public boolean matches(String regex)可以判断此时的String对象的字符序列是否与regex指定的正则表达式匹配
正则表达式可以用方括号括起来表示一个元字符,该元字符表示方括号中的任何字符
[a-zA-Z]代表英文字母中的任何一个
另外中括号中允许嵌、套中括号进行交并差运算
[a-d[m-p]] a-d或m-p中的任何
[a-z&&[def]] def中的任何一个
[a-f&&[^bc]]代表adef

字符含义
.任何字符
\d代表0-9的数字
\D代表任何非数字字符
\s代表空格类字符
\S代表非空格类字符

限定符

模式意义
X?X出现0或1
X*X出现0或多
X+X出现1或多
X{n}X出现n次

字符串的替换
String str=replaceAll(String regex,String replacement)
不改变当前序列
String split(String regex)

Scanner类

可以用于解析
通过调用方法
useDelimiter(正则表达式);默认用空白字符作为分隔,;

StringBuffer类

String对象的字符序列是不可能改变的
StringBuffer则允许发生改变
构造方法
StringBuffer():默认一开始是16
StringBuffer(int size):自己设定长度
StringBuffer(String s):s的长度再加16

常用方法

StringBuffer append(String s//int n//Object o)
public char charAt(int n)得到第n个字符
public setCharAt(int n,char ch)讲讲位置n的字符用ch替换
StringBuffer insert(int index,String str) 将str插入指定位置
public StringBuffer reverse()
StringBuffer delete(int start,int end)从start到end-1的被删除
StringBuffer replace(int start,int end,String str)

Date类与Calendar类

Date类

  1. 使用无参数构造方法
Date nowTime=new Date()
  1. 使用带参数的构造方法
Date date1=new Date(1000)

1000是毫秒单位,指当前时间的往后1000毫秒,如果是负数就往前1000毫秒

Calendar类

Calendar calendar=Calendar.getInstance();
初始化一个日历对象

数字格式化

format

基本与C的printf()相似用法

符号意义
%d转化为10进制整数
%o转化为8进制整数
%x转化为小写16进制
%X转化为大写16进制
%f十进制浮点数,小数保留6位
%e//(%E)科学计数法,区别在于大小写

修饰符
%+(格式化符号)强行加上符号+
%,(格式化符号)数字按千分位

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值