equals,toString和String类,StringBuffer类

 

1     equals方法

equals方法,用于比较两个对象是否相同。

2     toString方法

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

3.重写equals方法和toString方法

public class Person {
    private String name;
    private int age;
    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==null){
            return false;
        }
        if(obj==this){
            return true;
        }
        //向下转型
        if(obj instanceof Person){
            Person p=(Person) obj;
            return this.age==p.age;
        }
        return false;
    }
    //重写toString方法

    public String toString() {
        
        return "姓名为"+name+"年龄为"+age;
    }
    
}

3    String类的概述

字符串的本质是一个字符的数组。

public class Demo01 {
    public static void main(String[] args) {
        //""——>String 类对象
        //字符串是常量
        String str="abc";
        String s2=new String("abc");
        System.out.println(str==s2);//false
        System.out.println(str.equals(s2));//true
        
    }
}

String方法

public class Demo02 {
    public static void main(String[] args) {
        //String(byte[]bytes)
        //字节如果为正数走ASCII
        //如果为负数则为汉字,一个汉字为两个字节
        byte[]bytes={
                49,50,48
        };
        String s1=new String(bytes);
        System.out.println(s1);
        char[]ch={
                'a','5','e','你'
        };
        String s2=new String(ch,2,2);
        System.out.println(s2);
        //获取字符串长度
        String s3="I love java";
        System.out.println(s3.length());
        //截取字符串,包头不包尾
        String s4="How are you";
        String s44=s4.substring(3);
        System.out.println(s44);
        //判断字符串以谁开头,以谁结尾
        String s5="I am five.java";
        System.out.println(s5.startsWith("I"));
        System.out.println(s5.endsWith(".java"));
        //判断字符串中是否包含另一个字符串
        String s6="oh my god";
        System.out.println(s6.contains("god"));
        //返回该字符串第一次在大字符串中的索引
        System.out.println(s6.indexOf("my"));
        //字符串——>字节数组
        byte[]b=s6.getBytes();
        for(int i=0;i<b.length;i++){
            System.out.println(b[i]);
        }
        //字符串——>字符数组
        char[]c=s6.toCharArray();
        for(int j=0;j<c.length;j++){
            System.out.println(c[j]);
        }
        //忽略大小写比较两个串的内容
        String s7="abc";
        
    }
}
public class Demo03 {
    public static void main(String[] args) {
        //判断空字符串
        String s1="";
        System.out.println(s1.isEmpty());
        //获取该字符串中指定位置上的字符
        String s3="change";
        System.out.println(s3.codePointAt(3));
        //转化为小写字符串
        String s4="CHANGE";
        System.out.println(s4.toLowerCase());
        //转化为大写字符串
        String s5="change";
        System.out.println(s5.toUpperCase());
        //在该字符串中,将给定的旧字符,用新字符替换
        String s6="aaa";
        System.out.println(s6.replace("aaa", "bbb"));
        System.out.println(s6.replace('a', 'b'));
        //去除收尾空白
        String s7="  change  ";
        System.out.println(s7.trim());
    }
}

练习:题目一:获取指定字符串中,大写字母、小写字母、数字的个数

public class Demo01 {
    public static void main(String[] args) {
        //    题目一:获取指定字符串中,大写字母、小写字母、数字的个数
        String s1="fdafaDFADF3344";
        int Asum=0;
        int asum=0;
        int nsum=0;
        for(int i=0;i<s1.length();i++){
            char c=s1.charAt(i);
            if('A'<=c&&c<='Z'){
                Asum+=1;
            }
            else if('a'<=c&&c<='z'){
                asum+=1;
            }
            else if('0'<=c&&c<='9'){
                nsum+=1;
            }
        }
        System.out.println("大写字母个数为:"+Asum+"个,小写字母个数为:"+asum+"个,数字个数为:"+nsum+"个。");
    }
}

题目二:将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。

public class Demo02 {
    public static void main(String[] args) {
        //    题目二:将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。
        String s="ffAAADF";
        String s1=s.substring(0,1);
        String s2=s.substring(1);
        String s3=s1.toUpperCase().concat(s2.toLowerCase());
        System.out.println(s3);
    }
}

 题目三:查询大字符串中,出现指定小字符串的次数。

public class Demo03 {
    public static void main(String[] args) {
        //题目三:查询大字符串中,出现指定小字符串的次数。
        //如“hellojava,nihaojava,javazhenbang”中查询出现“java”的次数。
        String s="hellojava,nihaojava,javazhenbang";
        int count=-1;
        int index=0;
        while(index!=-1){
            index=s.indexOf("java");            
            s=s.substring(index+1);
            count++;
        }
        System.out.println(count);
    }
}

4    StringBuffer类

字符串缓冲区支持可变的字符串

1.    StringBuffer的方法使用:

public class Demo01 {
    public static void main(String[] args) {
        StringBuffer str=new StringBuffer();
        //链式调用
        str.append("小猪佩奇").append(true).append(1.2);
        System.out.println(str);
        //删除(包头不包尾)
        str.delete(2, 6);
        //插入
        str.insert(2, "熊大");
        System.out.println(str);
        //替换
        str.replace(2, 7, "How are you");
        System.out.println(str);
        //反转
        System.out.println(str.reverse());
    }
}

 

posted @ 2019-03-28 18:41  一叶之_秋  阅读(257)  评论(0编辑  收藏  举报