<--------------------------常用的API方法------------------------------>

//1.int length(); 返回的是字符串的长度
    public static void fun1() {
        String string = "string";
        int i = string.length();
        System.out.println(i);
    }
//2.substring (int beginIndex,int endIndex)获取字符串的一部分 包含头不包含尾
        //substring (int beginIndex)后面的全要
    public static void fun2(){
        String s ="hello word";
        String s2=s.substring(2);//下标为2的后面全要
        String s1=s.substring(1,4);//包含头不包含尾
        System.out.println(s2);
    }
//3.boolean startsWith(String preFix)判断一个字符串是否包含另一个字符串
    public static void fun3(){
        String s="hello word ";
        boolean s2=s.startsWith("hello");
        System.out.println(s2);
    }
//4.判断一个字符串的后缀 结尾  endsWith("参数");
    public static void fun4(){
        String s ="hello.java";
        boolean s1=s.endsWith(".java");
        System.out.println(s1);
    }
//5.contains判断一个字符串是否有另一个字符串
    public static void fun5(){
        String s ="hello.java";
        boolean s1=s.contains("ll");
        System.out.println(s1);
    }
//6.查找一个字符  indexOf(char ch)返回int   返回-1没有找到
    public static void fun6(){
        String s="hello.java";
        int s1=s.indexOf('w');
        System.out.println(s1);
    }
//7.将字符串转为字节数组    getBytes();
    public static void fun7(){
        String s="今晚十一点见";
        byte[] s1=s.getBytes();
        //System.out.println(s1);
        for (int i=0;i<s1.length;i++){
            System.out.println(s1[i]);
        }
    }
//8.将字符串转为字符数组     toCharArray()
    public static void fun8(){
        String s ="今晚十一点见";
        char[] s1=s.toCharArray();
        for(int i=0;i<s1.length;i++){
            System.out.println(s1[i]);
        }
    }
//9.boolean equals(Object obj);判断字符串里面完全相等  返回true
        //s.equalsIgnoreCase(s1)    不区分大小写的比较
    public static void fun9(){
        String s="hello";
        String s1="Hello";
        System.out.println(s.equals(s1));
        System.out.println(s.equalsIgnoreCase(s1));
    }
//10.将字符数组转换为字符串(字符数组参数不查询编码)
    public static void fun10(){
        char[] ch = {'a','b','c','d','e','f'};
        String s= new String(ch);
        String s1= new String(ch,1,2);
        System.out.println(s1);
    }
//11.将字节数组转换为字符串
    public static void fun11(){
        byte[] bytes={-67,-15,-51,-19,-54,-82,-46,-69,-75,-29,-68,-5};
        //调用String的构造方法,传递字节数组,字节数组转字符串(查unicode码);
        String str=new String(bytes);
        System.out.println(str);
        byte[] bytes1={-67,-15,-51,-19,-54,-82,-46,-69,-75,-29,-68,-5};
        //调用构造方法,传递数组,传递两个int x,y  代表截取,截取的位置,x代表下标开始的位置,y代表结束位置
        String s=new String(bytes1,0,12);
        System.out.println(s);
    }
//12.字符串的首字母转成大写,其他小写    toUpperCase()转大写          toLowerCase()转小写
public static void fun(){
    String s ="charAt(0)";
    //获取字符串的一部分,包含头不包含尾
    String s1=s.substring(0,1);
    //转大写
    String s2=s1.toUpperCase();
    //System.out.println(s2);
    //下标为1的及1后面的都要
    String s3=s.substring(1);
    //转小写
    String s4=s3.toLowerCase();
    System.out.println(s2+s4);
}
}

★ final(最终)关键字的使用:

  在定义的类上加上修饰符final,则该类是最终类,不能有子类,不能被继承。但是使用方式没有变化,例如创建对象和调用方法。

  

public final class Fu {
    public void show(){
        System.out.println("父类的最终方法");
    }
}
public class Test {
    public static void main(String[] args) {
        Fu f = new Fu();
        f.show();
    }
    
}

★equals关键字的使用(判断是否相等)

  将父类的方法equals方法重写,不改变父类的源代码,equals比较内存地址。比较两个成员变量,变量值相等就返回true,不等返回false。重写父类的方法equals,自己定义对象的比较方式。

Person:
public class Person extends Object{
     private String name;
     private int age;
     public Person(){}
     public Person(String name,int age){
         this.name=name;
         this.age=age;
     }
     /*
      * 重写Object的toString()方法    没有必要让用户看到内存地址 
      * 要求 :返回值是成员变量的
      * */
 public String toString(){
     return name+":     "+age;
 }
  public boolean equals(Object obj){
      if(this==obj){
          return true;
      }
      //对obj  作非空判断
      if(obj==null){
         return false; 
      }
      if(obj instanceof Person){
          //参数obj 接受到的是 Person对象  才能转型
          //对obj这个参数进行向下转型
          Person p =(Person)obj;
          return this.age==p.age;
      }
      return false;
  }


    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;
    }
     
     
}
Test:
public class Test {
   public static void main(String[] args) {
        Person p = new Person("张无忌",18);
        Person p1 = new Person("张san",18);
       boolean e = p1.equals(p1);
       System.out.println(e);
      
       boolean b = p.equals(p1);//重写了父类equals方法    比较年龄   如果不重写  比较内存
       System.out.println(b);
       //调用Person类的方法toString()
       //输出语句 写的是每一个对象    默认就调用toString();
      
       System.out.println(p);
       System.out.println(p1);
}
}

★Srting 类的特点

  一切都是对象,一旦被创建不能修改。

public class StringDemo {
    public static void main(String[] args) {
        String str="qy97";
        System.out.println(str);
        str="love java";
        System.out.println(str);
    }
}

运行结果:

原文地址:https://www.cnblogs.com/duguangming/p/10553297.html