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
  • 相关阅读:
    【转载】动态加载wpf控件主题样式资源
    paip.批处理清理java项目冗余jar的方法
    paip.java OutOfMemoryError 解决方法o33
    paip.java win程序迁移linux的最佳实践
    paip.java c# .net php python调用c++ c dll so windows api 总结
    paip.提高效率微信 手机app快速开发平台—微网络撬动大市场
    paip.Log4j配置不起作用的解决
    paip.获取地理位置根据Ip
    paip.java 开发中web server的选择jboss resin tomcat比较..
    paip.提升安全性Des加密 java php python的实现总结
  • 原文地址:https://www.cnblogs.com/qiuqiu001/p/7806725.html
Copyright © 2011-2022 走看看