Java——String对象

一、字符串:不可变对象;一旦赋值,其内容是不可改变的;

  //重新赋值,等于创建新的对象;

二、创建方法:

  (1)String s=new String();

  (2)String s1=new String("abc");

  (3)String s2="abc";  //s为String类型的变量;"abc"是一个对象;

    注释:

    1)s="kk";  //s指向的对象变为"kk","abc"对象还在,没有改变;

     2)s1==s2;//false,因为s1和s2为值指向不同的对象;

          s1.equals(s2);//ture;String类复写了Object中的equals方法;定义了用于判断字符串是否相同的方法;

    3)s1和s2的不同:s1在内存中有个2对象,s2只有1个;

      //一个在堆内存,一个在方法区;

    4)String s3="abc";String s4="abc";s3==s4;true  //s3和s4指向同一对象,不会重新开辟内存空间;

    5)String s5 =new String("abc");s3==s5;false;//s5的地址为堆内存中的,s3的在方法区;所有false;

三、常见操作:

   1.获取:

    (1)int length():获取长度;//数组的.length没有小括号,此处为方法;

    (2)char charAt(int index):获取索引位置的字符;从0开始索引;

    (3)获取字符第一次在字符串中出现的位置:

      1)int indexOf(String str);//不存在返回-1;

      2)int indexOf(String str,int fromIndex);//从formIndex位置开始查;

      3)lastIndexOf();//反向;

  2.判断:

   (1)boolean contains(str);判断是否包含str;

  (2)boolean isEmpty():判读长度是否为0;1.6版本新加入;//不能判断是否为null;

    //判断长度0的三种方法:(1)str.isEmpty();(2)str.length()==0;(3)“”.equals(str);

    //常用的为第三种,不会报空指针异常;

  (3)boolean startsWith(str):判断是否str开头;

  (4)boolean endsWith(str):判断是否str结尾;

  (5)boolean equals(str);判断字符串内容是否相同;复写了Object中的equals方法;

  (6)boolean equalsIgnoreCase(str);判断字符串是否相同,忽略大小写;

  3.转换:

   (1)将字符数组转成字符串:

      1)构造函数: String(char[]);

            String(char[],offset,count);//从offset个开始,选中count个;

      2)静态方法:startic String copyValueOf(char[]);

             startic String copyValueOf(char[],offset,count);

              static String valueOf(char[]);

          char[]c={'1','2','3','4','5'};

          String str=String.valueOf(c,1,3);

          System.out.println(str);

  (2)将字符串转为数组:char[] toCharArray();

  (3)将字节数组转成字符串构造:

      String(byte[]);

      String(byte[],offset,count);//从offset个开始,选中count个;

   (4)将基本数据类型转换成字符串:

      static String valueOf(int);

      static String valueOf(double);

   4.替换:String replace(oldStr,newStr);//replace创建了新的字符串;对老的字符串本身没有影响,用新的字符串接收;

   5.切割:String[] split("str");用str把字符串切割成字符串类型数组;

   6.子串:获取字符串中的一部分;

    String substring(begin);//从指定位置到结尾;索引从0开始;

    String substring(begin,end);//从开头索引到结尾索引;包括开头,不包括结尾;

  7.转换,去除空格,比较:

    (1)将字符串转成大写或小写:

      String toUpperCase();//大写;

      String toLowerCase();//小写;

     (2)将字符串两端的空格去掉:String trim();

    (3)将两个字符串进行自然顺序比较:int str1.compareTo(str2);//str1的ascii码值减去str2的码值;

 

posted @ 2019-07-23 23:07  开拖拉机的拉风少年  阅读(222)  评论(0)    收藏  举报