字符串的常用API

常用API二
一、Object
  成员方法:
    1、toString(): 重写前,调用object类中的,打印的是全类名@16进制的地址值 。 重写后打印具体对象的值
    2、equals():重写前比较的是地址值 重写后打印的是具体属性值
    3、获取字节码对象3种方式(三个获取的值相等)
      A:通过Object类中getClass()方法调用,Teacher t = new Teacher();t.getclass();
      B:类名点调用 Teacher.class();
      C:通过Class类的静态方法format()类获取 Class.forname("全类名");

例子:

package Apiss;

public class Zi {
    public static void main(String[] args) throws ClassNotFoundException {
        //创建老师对象
        Teacher t = new Teacher();
        //用对象调用的方法获取字节码
        Class cl = t.getClass();
        //打印字节码
        System.out.println(cl);
        //用Teacher类点的方法获取字节码
        Class cl2 = Teacher.class;
        System.out.println(cl2);
        //用forName()的静态方法获取字节码
        Class cl3 = Class.forName("字节码.Teacher");
        System.out.println(cl3==cl2);
        System.out.println(cl==cl2);
    }
}

//创建Teacher类
class Teacher{
    String name;
    int age;
}

 

结果:



二、System
  A:static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :
    从src源数组的srcPos索引开始,复制length个元素
    从destPost位置开始将这些元素放至到dest数组中

例子:

package Apiss;

public class Arraycopyss {
        public static void main(String[] args) {
            //创建源数组
            int[] arr1 = {1,2,3,4,5};
            //创建目标数组
            int[] arr2 = new int[5];
            //将源数组元素复制到目标数组中
            System.arraycopy(arr1, 0, arr2, 0, 5);
            //遍历数组
            for(int i=0;i<arr2.length;i++){
                System.out.print(arr2[i]+" ");
            }
    }

}

 

结果:

 

  B: System.exit(int i);//终止当前虚拟机
  C: System.currentTimeMillis();获取当前系统毫秒时间

例子:

package Apiss;

public class Systemss {
    public static void main(String[] args) {
        // 创建起始时间
        long start = System.currentTimeMillis();
        // 循环输出数
        for (int i = 0; i < 1000; i++) {
            System.out.println(i);
            // 判断第100个数时
            if (i == 100) {
                // 记录结束时间
                long end = System.currentTimeMillis();
                // 打印时间差
                System.out.println(end - start);
                // 终止当前虚拟机
                System.exit(0);
            }
        }
    }
}

 

结果:



三、Date
  1、构造方法
    Date(); 返回的就是从1970-1-1 8:00:00到当前的时间毫秒值
    Date(毫秒值); 返回的就是具体传入毫秒值日期对象
  2、成员方法
    setTime();
    setTime();

例子:

package Apiss;

import java.util.Date;

public class Datess {
    public static void main(String[] args) {
        //创建日期对象
        Date d = new Date();
        //打印日期
        System.out.println(d.toLocaleString());
        //获取当前时间的毫秒值
        System.out.println(d.getTime());//1510149157189
        //设置时间毫秒值 , 据1970-1-1 8:00:00的毫秒值
        d.setTime(1510149157189L);
        System.out.println(d.toLocaleString());
        System.out.println("1970年至今"+1510149335204L/1000/60/60/24/365+"年");
    }
}

 

结果:

四、SimpleDateFormat
  1、构造方法:SimpleDateFormat() :使用默认的模式进行对象的构建
        SimpleDateFormat(String pattern) :使用的指定的模式进行对象的构建
    例子:SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
  2、成员方法:String format(Date d);将日期对象转换成一个字符串
        Date parse(String s); 将字符串转成一个日期对象

例子:

package Apiss;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Formate {
    public static void main(String[] args) throws ParseException {
        //指定一个日期格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        
        Date date = new Date();
        //格式化日期,将日期对象转化为一个字符串
        String s = sdf.format(date);
        System.out.println(s);
        //将字符串解析为一个日期对象
        Date d = sdf.parse("2017年11月08日 10:00:00");
        System.out.println(d.toLocaleString());
        
    }
}

 

结果:

计算出生到现在的小时案例:

package Apiss;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class BirthDays {

    public static void main(String[] args) throws ParseException {
        //写入出生,现在的时间
        String birthday = "2000-11-26";
        String now = "2017-11-08";
        //设置日期格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //将两个字符串转化成日期对象
        Date d1 = sdf.parse(birthday);
        Date d2 = sdf.parse(now);
        //获取日期对应的毫秒时间
        long l = d1.getTime();
        long ll = d2.getTime();
        //计算出生到现在的小时
        System.out.println("出生到现在经过了"+(ll-l)/1000/60/60/24+"个小时");
    }

}

 

结果:



五、Calendar日历类
1、static Calendar getInstance();使用默认时区和语言环境获得一个日历
Calendar c = Calendar.getInstance();//返回当前时间
2、获取get();
3、修改set();
4、添加add();

例子:

package Apiss;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class GetTimes {
    public static void main(String[] args) throws ParseException {
        // 给一个时间字符串
        String s = "2017-11-08";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        // 将字符创转成日期对象,获取从1970年1月1日至今的毫秒值
        Date d = sdf.parse(s);
        // 创建日历对象
        Calendar c = Calendar.getInstance();
        // 将毫秒值设置到日历对象
        c.setTime(d);
        // 获取年
        int year = c.get(Calendar.YEAR);
        // 获取月(记录月的索引从0开始)
        int month = c.get(Calendar.MONTH) + 1;
        // 获取日
        int day = c.get(Calendar.DAY_OF_MONTH);
        // 今天是一年中的第几天
        int dayOfYear = c.get(Calendar.DAY_OF_YEAR);
        System.out.println(s + "是" + year + "年。" + month + "月。" + day + "日。是这一年中的第:" + dayOfYear + "天");
        // 获取周
        int week = c.get(Calendar.DAY_OF_WEEK);
        System.out.println(getWeek(week));

    }

    private static String getWeek(int week) {
        String[] arr = { "", "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
        return arr[week];
    }
}

 

结果:




六、String
  1、构造方法:
    String(String s);将一个字符串构建成一个字符串对象
    String(char[] arr);将一个字符数组构建成一个字符串对象
    String(char[] arr,int index,int count);将一个字符数组截取出来构建成一个字符串对象

  2、字符串创建对象赋值和直接赋值的区别
    创建对象赋值记录的是堆内存的地址值
    直接赋值记录的是方法区中的常量池的地址值
    ==号:
    既可以比较基本数据类型,也可以比较引用数据类型
    比较基本数据类型比较的是具体的值
    比较引用数据类型比较的是地址值
  3、判断功能
    boolean equals(String s); 判断两个字符串是否相等,区分大小写
    boolean equalsIgnoreCase(String s); 判断两个字符串是否相等,不区分大小写
    boolean startsWith(String s); 判断一个字符串是否以传入的字符串为开头
    boolean endsWith(String s); 判断一个字符串是否以传入的字符串为结尾

  4、获取功能
    int length(); 获取一个字符串的长度
    char charAt(int index); 根据指定索引获取对应字符
    int indexOf(String s); 获取传入的s这个字符串在当前字符串中第一次出现的索引位置
    String substring(int index); 将指定索引开始的字符串进行截取。默认截取到字符串的末尾
    String substring(int start,int end); 将开始索引到结束索引的部分截取出来。 包含头不包含尾

例子:

public static void main(String[] args) {
        //将一个字符串构建成一个字符串对象
        String s = new String("Java");
        System.out.println("字符串s:"+s);
        String s1 = new String("helloworld");
        System.out.println("字符串s1:"+s1);
        char[] chs = {'j','a','v','a'};
        //将一个字符数组构建成一个字符串对象
        String s2 = new String(chs);
        System.out.println("字符串s2:"+s2);
        //将一个字符数组截取出来构建成一个字符串对象
        String s3 = new String(chs,1,2);
        System.out.println("字符串s3:"+s3);
        //s3字符串的长度
        System.out.println("s3字符串的长度:"+s3.length());
        //获取索引为2的元素
        System.out.println("s2索引为2的元素:"+s2.charAt(2));
        //获取e第一次出现的索引
        System.out.println("e第一次出现的索引:"+s1.indexOf("e"));
        //截取字符串
        System.out.println("s1中从索引为2开始往后的元素是:"+s1.substring(2));
        System.out.println("s1中索引从2到4的元素是:"+s1.substring(2, 4));
        //字符串判断
        System.out.println("s,s2相等?"+s.equals(s2));
        System.out.println("s,s2忽略大小写是否相等:"+s.equalsIgnoreCase(s2));
        //将字符串s全部转为小写再与s2字符串相比较
        String snew = s.toLowerCase();
        System.out.println("转小写后与s2是否相等:"+snew.equalsIgnoreCase(s2));
        System.out.println("s1是以h开头的吗?"+s1.startsWith("h"));
        System.out.println("s1是以o结尾的吗?"+s1.endsWith("o"));
    }

 

结果:


  5、转换功能
    char[] toCharArray(); 将字符串转成字符数组
    String toUpperCase(); 将字符串转成大写的
    String toLowerCase(); 将字符串转成小写的
    String toString(int[] a); 返回指定数组内容的字符串表示形式。
    String toString(char[] a); 返回指定数组内容的字符串表示形式

例子:

public static void main(String[] args) {
        //创建数组
        int[] arr = {1,2,3,4,5};
        char[] ch = {'q','w','e','r'};
        //将数组转换成字符串
        String s = Arrays.toString(arr);
        String s1 = Arrays.toString(ch);
        System.out.println(s);
        System.out.println(ch);
        
    }

 

结果:


  6、String类的其他方法
    去除两端空白:String trim();
    切割字符串:String[] split(String regex);

七、StringBuilder
  1、StringBuilder和String的区别
    String是不可变的字符序列
    StringBuilder是可变的字符序列
  2、构造方法
    StringBuilder(); 创建一个StringBuilder对象
    StringBuilder(String str); 根据传入的字符串构建一个StringBuilder对象
  3、功能方法
    int capacity(); 返回理论容量
    int length(); 返回实际容量
    StringBuilder append(Object obj); 向缓冲区中添加内容
    StringBuilder reverse(); 将缓冲区的内容反转
  4、StringBuilder和String相互转换
    A:如何将String转成一个StringBuilder对象呢?
      a:直接通过StringBuilder有参构造方法传入一个字符串进去,就会将字符串转成一个StringB对象
      b:通过StringBuilder空参构造方法创建对象,调用append(字符串)添加一个字符串进去。就会将字符串转成一个StringBuilder对象
    B:如何将StringBuilder对象转成一个String字符串呢?
      a:通过StringBuilder类中的toString()方法,将StringBuilder对象转成一个String字符串

例子:

public static void main(String[] args) {
        //创建对象
        StringBuilder sb = new StringBuilder();
        StringBuilder sbb = new StringBuilder("hello");
        
        //返回理论容量
        System.out.println("sb理论容量:"+sb.capacity());
        System.out.println("sbb理论容量:"+sbb.capacity());
        
        // 返回实际容量
        System.out.println("sb实际容量:"+sb.length());
        System.out.println("sbb实际容量:"+sbb.length());
        
        //添加元素
        sb.append("he ");
        sb.append("is ");
        sb.append("a ").append("man");
        System.out.println("sb是:"+sb);
        System.out.println("sbb是:"+sbb);
        
        //sbb反转后输出
        System.out.println("sbb反转后是:"+sbb.reverse());
        
        //StringBuilder转String
        String s = sb.toString();
        System.out.println("sb变String类型后:"+s);
        
    }

 

结果:


八、补充的常用方法
    boolean contains(String s); 判断当前字符串是否包含传入的字符串
    int lastIndexOf(String s); 获取传入的字符串在当前字符串中最后一次出现的索引位置
    byte[] getBytes(); 将字符串转成字节数组
    String repleace(String old,String new); 用新的字符串替换老的字符串(替换所有)
    String repleaceFirst(String old,String new); 将字符串中第一个老字符串用新字符串替换
    int Integer.parseInt(String number); 将一个字符串类型的数字转成一个int类型的数字

例子:

public static void main(String[] args) {
        //将一个字符串类型的数字转成一个int类型的数字
        String s = "1234";
        int n =Integer.parseInt(s);
        System.out.println(n);
    }

 

结果:

 

posted @ 2017-11-08 22:46  球球啦啦啦  阅读(883)  评论(0编辑  收藏  举报