zoukankan      html  css  js  c++  java
  • String类、 StringBuffer、基本数据类型对象包装类

    一、概述

      Sting s1 = "abc";    //s1是一个类类型变量,"abc"是一个对象。 

      String s2 = new String("abc");

      //s1 、 s2 的区别:

        前者在内存中有一个对象,后者在内存中有两个对象。

      s1.equals(s2) 为true  因为 String复写了equals方法

    二、常见的功能-获取和判断

      获取:

        1、int length(); 获取长度

        2、char chatAt(int index); 根据位置获取位置上的字符

        3、 int indexOf(int ch);

          int indexOf(int ch, int fromIndex);

          int indexOf(String str); 返回str 在字符串中第一次出现的位置。

          int indexOf(String str , int fromIndex);  从fromIndex指定位置开始,获取str在字符串中第一次出现的位置。

          int lastIndexOf(int ch); 反向索取ch 在字符串中第一个次出项的位置。

      判断:

        1、字符串中是否包含某一个子串  :  boolean contains(str);

          特殊之处: indexOf(str) : 可以索引str 第一个次出现的位置,如果返回 -1。表示该str不在字符串中存在;所以,也可以用于对指定判断是否包含。

          if(str.indexOf("aa")!=1)

          而且该方法既可以判断,又可以获取出现的位置。

        2、字符中是否有内容  :    boolean isEmpoty(str);      

        3、字符串是否是以指定内容开头的 :  boolean startsWith(str);

        4、字符串是否是以指定内容结尾 :  boolean endsWith(str);

        5、判断字符串的内容是否相同 : boolean equals(str);

        6、判断内容是否相同,并忽略大小写 : boolean equalsIgnoreCase();

      转换:

        1、将字符数组转换成字符串

           String(char[])

           String(char[] , offset, count );

          或者

           static String copyValueOf(char[]);

           static String copyValueOf(char[]  data, int offset , int count);

           static String valueOf(char[]);

        **2、将字符串转换为字符数组

           char[]  toCharArray();

        3、将字节数组转换成字符串

           String(byte[])

           String(byte[] , offset, count ); 将字节数组中的一部分(offset 到 count)

        4、将字符串转换成字节数组

          byte[]  getBytes();

        5、将基本数据类型转换成字符串

          static String valueOf(int)

          static String valueOf(double)

           //3+"";  //string.valueOf(3);

        特殊: 字符串和字节数组在转换过程中,是可以指定编码表的。 

      替换: String replace(oldchar , newchar);

      切割: String[] split(regex);  

      子串,获取字符串中的一部分  :  

        String substring(begin);   从此位置开始到结尾

        String substring(begin , end);  包头不包尾

      转换 、 去除空格、 比较

        将字符串转换为大写或者小写 :  

              String toUpperCase();  

              String toLowerCase();

        去除空格  :  string trim();

        对两个字符串进行自然顺序的比较

              int compareTo(string);

      更多可查api String类。。。。。

       附加几个练习:

        1、模拟一个trim方法,去除字符串两端的空格; "       dfsafd dsfa       "

        2、将一个字符串进行反转,将字符串中指定部分进行反转,"abcdefg"  ; abfedcg

        3、获取一个字符串在另一个字符串中出现的次数;   “abkkcdkkedkkskk”

        4、获取两个字符串中最大相同的子串,第一个动作:将短的那个串进行长度一次递减的子串打印;   "abcwerthelloyuiodef"      、   "cnhellobnm"

    三、StringBuffer

      ——是一个容器

       》长度是可变的;可以字节操作多个数据类型;最终会通过toString 方法变成字符串。

        StringBuffer 是字符串缓冲区

       C create U update R read D delete

       1、存储

          StringBuffer append() : 将指定数据作为参数添加到已有数据结尾处。

          StringBuffer insert(index  ,  数据) :  可以将数据插入到指定index位置。

       2、删除

         StringBuffer delete(start , end): 删除缓冲区中的数据,包含start   ,不包含end

        StringBuffer deleteCharAt(index):  删除指定位置的字符

       3、获取

        char charAt(int index)

        int indexOf(String str)

        int lastIndexOf(String str)

        int length()

        String substring(int start  , int end)

       4、修改

        StringBuffer replace(start ,end string)

       5、反转

        stringBuffer reverse();

       6、将缓冲区中指定数据存储到指定字符数组中。

        void getChars (int srcBegin,  int srcEnd  , char[] dst ,  int dstBegin)

     -----StringBuilder (JDK1.5之后出现)

      StringBuffer 是线程同步;

      StringBuilder 是线程不同步。

      

      -------开发建议使用StringBuilder

    升级三个因素:  提高效率、简化书写、提高安全性

    四、基本数据类型对象包装类

       基本数据类型转换为字符串

          ---基本数据类型.toString(基本数据类型值);

         如: Integer.toString(34);

       字符串转换成基本数据类型。

          --- int  a   =   Integer.parseInt("123");

          --- double  b  =  Double.parseDouble("123.3");

       十进制转成其他进制

          --- toBinaryString();

          ---toHexString();    --- toOctalString();

       其他进制转成十进制

          --- parseInt(string  , radix); ------radix 你要转换的进制

    ----JDK1.5 新特性

        Integer x = 4;  //自动装箱 。 new Integer(4);

        x  =  x /*  x.intValue() */ + 2;  // x+2:  x 进行自动拆箱,变成了int 类型,和2进行加法运算,再将结果 进行装箱赋值给x 。

      

  • 相关阅读:
    查准率(precision)和查全率(recall)
    数据集大全:25个深度学习的开放数据集
    利用贝叶斯算法实现手写体识别(Python)
    KNN算法识别手写数字
    判断点在直线的左右哪一侧
    多节点bigchaindb集群部署
    java 多线程 3 synchronized 同步
    java 多线程 1 “常用的实现多线程的2种方式”:Thread 和 Runnable
    java 字符串
    java 关键字static
  • 原文地址:https://www.cnblogs.com/jesonjason/p/5100528.html
Copyright © 2011-2022 走看看