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()); ; } }
  • 相关阅读:
    Angularjs html文本显示
    .net与.net core学习目录
    数据库学习目录
    WCF学习目录
    sql学习目录
    EF学习目录
    git for Windows
    图谱论(Spectral Graph Theory)基础
    2017机器学习相关会议时间
    数值分析教材统计
  • 原文地址:https://www.cnblogs.com/zs0322/p/10916148.html
Copyright © 2011-2022 走看看