zoukankan      html  css  js  c++  java
  • String类

     

    Object类中的equals方法内部使用的就是==比较运算符。

    不重写eques方法比较的是地址(默认的)

    重写eques方法比较的是字符串内容;

    toString返回的是默认地址,需要得到字符串内容需要重写toString方法

     

    建立person

    package com.oracle.demo01;
    public class Person {
            private  String name;
            private int age;
            //空参构造
            public Person() {}
    
           public Person(String name, int age) {
               super();
               this.name = name;
               this.age = 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;
           }
           @Override
           public boolean equals(Object obj) {
           // TODO Auto-generated method stub
               //如果传的是NULL;
               if(obj==null) { return false;}
               //如果传的是本类对象直接返回turn;
               if(obj==this) {
                  return true;
               }
               //向下转型,比较内容
              if( obj instanceof Person) {
                  Person  p=(Person)obj;
             return p.name.equals(this.name)&&p.age==this.age;
              }
              return false;
           }
           public String toString() {
               return "Person [name=" + name + ", age=" + age + "]";
           }
           /*public String toString() {
        return "我叫"+name+",今年"+age+"岁了";
           }*/}

    测试类

    package com.oracle.demo01;
    public class Demo01 {
    public static void main(String[] args) {
    
         Person  p1=new Person("灵芝",222);
    
         //p1存的就是地址,打印时 默认调用tostring方法
    
         Person  p2=new Person("乌拉草",222);
    
         //自定义类,从object继承的equls方法,如果没有重写则比较的是地址。想用就要重写。想要比较内容则重写。
    
         //==两边是引用型数据类型比较的一定是类型存的地址,==两边是值比较的是值。
    
         //已经写好的方法,无需重写
    
         //如果重写了equals方法比较的是内容,
    
        System.out.println(p1.equals(p2));  //true
    
        System.out.println(p1==p2);//false  比的是地址
    
        System.out.println(p1);//打印一个的时候是默认调用tostring
    
         
    
     
    
         //自定义类,从tostring继承的equls方法,如果没有重写则比较的是地址。
    
         //System.out.println(p1.toString());默认tostring方法//结果为地址
    
         //System.out.println(p1);//p1 默认的是 tostring方法结果为地址
    
         System.out.println(p1.toString());
    
         System.out.println(p2.toString());
    
    }
    
    }

    1.1      String类构造方法

    package com.oracle.demo02;

    public class Demo01 {
       public static void main(String[] args) {
          //创建byte数组
          byte[] bytes={-65,-66,-67};
          //当byte数组中的值为正数时走的时ASCII
          //当byte数组中的值为负数时走的时中文码表
          //byte数组->字符串
          String str=new String(bytes,1,2);//从下标为1的开始,转2个
          System.out.println(str);//ABC
          //char数组-》字符串
          char[] ch= {'','','h','e','l','l','o'};
          String str2=new String(ch,2,5);
          System.out.println(str2);// hello
          String str3=new String("小哪吒");
          System.out.println(str3);// 小哪吒          
    }
    }

    1.2      String类的方法查找

    package com.oracle.demo02; 
    public class Demo02 {
        public static void main(String[] args) { 
          String str="hellojava,java你好.java";
          //获取字符串长度
         System.out.println(str.length());  //21
         //截取字符串
         System.out.println(str.substring(10));//开始一直截到最后  java你好.java
         System.out.println(str.substring(5, 9));//包头不包围,最后一个值的下标得+1   java
         //判断字符串以什么开头
         System.out.println(str.startsWith("hello"));//true
         //判断字符串以什么结尾
         System.out.println(str.endsWith(".java"));//true
         //判断大字符串中是否包含小字符串
         System.out.println(str.contains("hello"));//true
         //获取小字符串在大字符串中第一次出现的索引
        System.out.println(str.indexOf("java"));//5

    //将字符串转字节数组 byte[] bytes=str.getBytes(); for(int i=1;i<bytes.length;i++) { System.out.println(bytes[i]); } //字符串-》字符数组 char[] ch=str.toCharArray(); for(int i=0;i<ch.length;i++) { System.out.println(ch[i]); } //判断两个字符串是否内容相同,布尔 String s="a"; String s2="A"; System.out.println(s.equals(s2));//false //忽略大小写 System.out.println(s.equalsIgnoreCase(s2));//true } }

     字符串缓冲区

    package com.oracle.demo02; 
    public class Demo03 {
            public static void main(String[] args) {
                StringBuffer sf=new StringBuffer ();
                //添加字符串  链式调用
                sf.append("aa").append(564);
                sf.append("bbb");
                sf.append(true);
               sf.append(123456);
               // System.out.println(sf);//aa564bbbtrue123456
                //删除指定字符串  包头不包围
                sf.delete(0, 3);
                System.out.println(sf);//64bbbtrue123456
                //在指定位置插入指定的值
                sf.insert(0, "哪吒");
                System.out.println(sf);//哪吒64bbbtrue123456
               //在指定位置替换指定的值,包头不包尾
                sf.replace(2, 7, "你你好");
                System.out.println(sf);//哪吒你哈true123456
                //反转,逆序
                sf.reverse();
                System.out.println(sf);//654321eurt好你你吒哪
                //将StringBuffer——》字符串,不能在更改,进常量池
                String str=sf.toString();
                System.out.println(sf);
           }
    }
  • 相关阅读:
    香洲区学区查询
    审批流程标识
    小技巧
    Python字符串操作
    Delphi删除动态数组的指定元素
    dephi 多种排序 算法
    [转载]模拟退火,遗传算法,禁忌搜索,神经网络
    Date类学习总结(Calendar Date 字符串 相互转换 格式化) 转
    Java静态嵌套类
    java中的匿名内部类总结
  • 原文地址:https://www.cnblogs.com/layuechuquwan/p/11350229.html
Copyright © 2011-2022 走看看