zoukankan      html  css  js  c++  java
  • 0524 API、Object、toString String类、构造方法、StringBuffer、StringBuilder

    API

    Java的API(Application(应用) Programming(程序) Interface(接口))

    Java的API就是jdk中提供给我们使用的类,这些类将底层代码封装起来,我们不需要关心如何实现,只管知道如何使用

    Objec是所有 类 的父类 。不是接口(interface)的父类,它是特殊的类

    Object类

    1.equals(Object obi)方法:内部使用 == 比较运算符比内容

    equals方法如果不重写是没有任何意义

        private String name;
        private int age;
        //有参构造方法
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        //空参构造
        public Person() {
            super();
        }
        //
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        //重写父类的equals方法
        public boolean equals(Object obj) {
            if(obj==this){
                return true;
            }
            //向下转型
            if(obj instanceof Person){
                Person p=(Person)obj;
                return this.age==p.age;            
            }
            return false;
        }    
    }
    -----------------------------------------------------
    package com.oracle.demo01;
    //测试
    public class Demo {
        public static void main(String[] args) {
            Person p1=new Person("胸大",22);
            Person p2=new Person("胸二",26);
            //多态
            System.out.println(p1.equals(p2));//false
            System.out.println(p1==p2);
        }
    }

    2.toString方法

    Alt+Shift+s  --toString 快捷

    //重写   打印的是内容
        public String toString() {
            return "Person [name=" + name + ", age=" + age + "]";
        }
    -------------------------------------------------
    package com.oracle.demo01;
    //测试  toString
    public class Demo01 {
        public static void main(String[] args) {
            Person p=new Person("琪琪国王",22);
            //如果不重写打印的是地址
            System.out.println(p.toString());
            System.out.println(p);
            String a="你好";
            //重写 打印的是内容
            System.out.println(a.toString());
        }
    }

    重写打印内容    没重写打印地址

    String类

    代表字符串,字符串的本质就是一个char数组

    public class Demo02 {
        public static void main(String[] args) {
            String s="abc";
            String s2=new String("abc");
            //==比的是地址
            System.out.println(s==s2);//false
            //equals 比的是内容
            System.out.println(s.equals(s2));//true
        }
    }

    PM

    Byte

    package com.oracle.demo02;
    //构造方法摘要
    public class Demo01 {
        public static void main(String[] args) {
        //String 构造方法
            byte[] bytes={65,66,67,68,69};
            //正数 走ASCII码表 负的走字节
            //A----65
            //a----97
            //0----48
            /*String str=new String(bytes);
            System.out.println(str);*///BCDE
        //String构造方法2
            String str =new String(bytes,1,4);//1和4 1:从哪个下标开始  4:代表取几个
            System.out.println(str);
        }
    }

    char数组用构造方法转成串

    package com.oracle.demo02;
    //构造方法 char数组转成串
    public class Demo02 {
        public static void main(String[] args) {
            char[] ch={'a','e','0','b'};
            String str=new String(ch);
            //字符转字符串
            System.out.println(str);        //ae0b
            String str2=new String(ch,1,2);
            System.out.println(str2);        //e0
        }
    }

    字符串功能

      字符串中有多少字符  int length()   求字符串长度 用length方法

      获取部分字符串

     

      字符串是否以指定字符串开头。结尾同理

      字符串中是否包含另一个字符串:判断字符串是否包含另一个字符串

     

      将字符串转成一个字符数组。或者字节数组

        判断两个字符串中的内容是否相同

      获取该字符串对象中的内容

     1 package com.oracle.demo02;
     2 
     3 public class Demo03 {
     4     public static void main(String[] args) {
     5         String str="nihaojava";
     6         //求字符串长度 用length方法
     7         System.out.println(str.length());
     8         //截取字符串截取java
     9         String s=str.substring(5);//5:代表从哪开始
    10         System.out.println(s);
    11         //截取字符串nihao (包头不包尾)
    12         String s2=str.substring(0,5);
    13         System.out.println(s2);//nihao
    14         //判断字符串是否以http开头
    15         String str2="https://www.baidu.com";
    16         //判断字符串是否以http开头  用startsWith
    17         System.out.println(str2.startsWith("http"));
    18         //判断字符串是否以.com结尾 用endsWith
    19         System.out.println(str2.endsWith(".com"));
    20         //判断字符串中是否包含另一个字符串
    21         System.out.println(str2.contains("www"));
    22         String str1="nihaoyuanyimingnihao";
    23         //获取nihao在大字符串中第一次出现的位置
    24         System.out.println(str1.indexOf("yuanyiming"));//5s
    25         //字符串-->字节数组
    26         byte[] bytes=str.getBytes();
    27         for(int i=0;i<bytes.length;i++){
    28             System.out.println(bytes[i]);
    29         }
    30         //将字符串-->字符数组
    31         char[] ch=str.toCharArray();
    32         for(int j=0;j<ch.length;j++){
    33             System.out.println(ch[j]);
    34         }
    35         String str3="IloveJava";
    36         //忽略大小写判断两个字符串内容是否相同
    37         System.out.println(str3.equalsIgnoreCase("ilovejava"));//true
    38         System.out.println();
    39     }
    40 }

       StringBuffer类

    字符串缓冲区

    package com.oracle.demo02;
    //String  buffer的
    public class Demo04 {
        public static void main(String[] args) {
            //StringBuffer
            StringBuffer buffer=new StringBuffer();
            //添加字符串
            buffer.append("abc").append("bcd").append("123");
            System.out.println(buffer);
            //删除子字符串 (0开始,包头不包尾)
            buffer.delete(2,5);
            System.out.println(buffer);
            //在指定位置插入子字符串
            buffer.insert(0, "袁一鸣");
            System.out.println(buffer);
            //将指定位置字符串替换为新的字符串 (包头不包尾)
            buffer.replace(1, 2,"三丰");
            System.out.println(buffer);//袁三丰鸣abd123
            //反转字符串
            buffer.reverse();
            System.out.println(buffer);
            //StringBuffer-->String
            String str2=buffer.toString();
            System.out.println(str2);
            //
        }
    }

    StringBuffer和StringBuilder类的区别

    StringBuilder > StringBuffer

      String最慢的原因:

      String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,StringBuilder对象创建之后该对象是不可更改的,但StringBuffer的对象是变量,是可以更改的。

    1 String str="abc";
    2 System.out.println(str);
    3 str=str+"de";
    4 System.out.println(str);

    练习

    package com.oracle.day01;
        //练习
    public class lianxi {
        public static void main(String[] args) {
            //判断该字符是否为空字符串
            String a="shifoukongzifu";
            boolean b=a.isEmpty();
            System.out.println(b);
            //获取给定的字符,在该字符串中第一次出现的位置
            int c=a.indexOf("d");
            System.out.println(c);
        //获取该字符串中指定位置上的字符
            String d=a.substring(2, 4);
            System.out.println(d);
        //把该字符串转换成 小写字符串
            String e=a.toLowerCase();
            System.out.println(e);
        //把该字符串转换成大写字符串
            String f=a.toUpperCase();
            System.out.println(f);
        //在该字符串中,将给定的旧字符,用新字符替换
            String g=a.replace("ban","Gg");
            System.out.println(g);
        //在该字符串中,将给定的旧字符,用新字符替换
            String h=a.replace("Hh","ban");
            System.out.println(h);
        //去除字符串两端空格,中间的不会去除,返回一个新字符串
            String i=a.trim();
            System.out.println(i);
        //判断大小写
            String zongti="small big 01234";
            int big=0;
            int small=0;
            int num=0;
            char[] ch=zongti.toCharArray();
            for(int p=0;p<ch.length;p++){
                System.out.println(ch[p]);
    //大写A 是ascII值
         char ch=97;//对应的ASCII值
    if(ch[p]>='A' && ch[p]<='Z'){ big++; } else if(ch[p]>='a' && ch[p]<='z'){ small++; } else if(ch[p]>='0' && ch[p]<='9'){ num++; } } System.out.println("大写"+big); System.out.println("小写"+small); System.out.println("数字"+num); //获取第一部分为字符串 String start = zongti.substring(0,1); //获取第二部分为字符串 String end = zongti.substring(1); String big1 = start.toUpperCase(); String small1 = end.toLowerCase(); System.out.println(big1+small1); StringBuffer m=new StringBuffer(); m.append("abcdefghijk"); System.out.println(m); String Q=m.toString(); String q=Q.substring(2,8); System.out.println("截取c——h:"+q); int[] arr={34,12,89,68}; StringBuffer v=new StringBuffer(); v.append("["); for (int ii = 0; ii < arr.length; ii++) { if(ii!=arr.length-1){ v.append(arr[ii]+","); }else{ v.append(arr[ii]+"]"); } } System.out.println(v.toString()); ; } }
  • 相关阅读:
    ffmpeg rtmp推流 视频转码
    java日志发展史 log4j slf4j log4j2 jul jcl 日志和各种桥接包的关系
    nginx stream 流转发,可以转发rtmp、mysql访问流,转发rtmp、jdbc请求
    java web http 转https 通过nginx代理访问
    linux 服务器磁盘挂载
    novnc 通过websockify代理 配置多点访问
    linux 文件服务 minio 安装部署配置
    AOP实现原理,手写aop
    java 泛型
    JAVA反射getGenericSuperclass()用法
  • 原文地址:https://www.cnblogs.com/zs0322/p/10916148.html
Copyright © 2011-2022 走看看