zoukankan      html  css  js  c++  java
  • 字符串的常用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);
        }

    结果:

    smile
  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/qiuqiu001/p/7806725.html
Copyright © 2011-2022 走看看