zoukankan      html  css  js  c++  java
  • 07_基本数据类型和包装类

    1. String类

       String类是final类

         String对象是一个特殊的对象,一旦初始化就不可被改变

         String str = "abc" 与 String str = new String("abc");的区别.

              一个是内存中只存在一个对象"abc",一个是存在两个对象"abc"和 new String("abc").

         String类复写了Object类中的equals方法,不是比较地址而是比较里面的字符串是否相同.


    1.获取

         int length()获取长度

         char charAt(int index)获取某个位置上字符

         int indexOf(int ch):返回从ch在字符串中第一次出现的位置,-1表示没有找到

         int indexOf(int ch,int fromIndex):返回从fromIndex开始, ch在字符串中第一次出现的位置,-1表示没有找到

         int indexOf(String str):返回str在字符串首次出现位置,-1表示没有找到

         int indexOf(String str, int fromIndex):从fromIndex开始返回str在字符串首次出现位置,,-1表示没有找到

    2.判断

         boolean contains(str)字符串是否包含某一字串

         boolean isEmpty():判断是否为空,原理是判断length是否为0

         boolean startsWith(str):是否指定位置开头

         boolean endsWith(str):是否指定位置结尾

         boolean equals(str):判断字符串内容是否相同,复写了Object的equals方法.

         boolean equalsIngoreCase(str):忽略大小写的判断内容是否相同

    3.转换

         3.1 将字符数组转字符串

              构造函数: String (char[] buf)

              构造函数: String (char[] buf,offset, count) 

              静态方法:

                   static copyValueOf(char[] buf);

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

                   static ValueOf(char[] buf);

                   static ValueOf(char[] buf,int offset, int count);

         3.2字符串转字符数组

              char[] toCharArray()

         3.3将字节数组转字符串

              构造函数: String (byte[] buf)

              构造函数: String (byte[] buf,offset, count)

         3.4字符串转字节数组

              byte[] getBytes()

         3.5基本数据类型转字符串

              static String valueOf(int);          

              static String valueOf(double);    

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

    4.替换

         String replace(char oldch,char newch); 将字符串中的内容进行替换

         String replace(String s1,String s2);

       String replaceAll(String regex, String replacement);按照给定的replacement替换此字符串所有匹配给定regex的子字符串.

       String repalceFirst(String regex, String replacement);按照给定的replacement替换此字符串所有匹配给定regex的第一个子字符串.

    5.切割

         String[] split(regex)

    6.获取子串.

         String substring(int beginIndex, int endIndex)//包含begin 不包含end 。如果角标不存在则出现越界异常

         String substring(int beginIndex);

    7.转换

         将字符串中的字母转成大小写。

              String toUpperCase():大写

              String toLowerCase():小写

         将字符串两端的空格去除。

              String trim();

         字符串自然排序比较

              int compareTo(str);


    2. StringBuffer类

         字符串的组成原理就是通过该类实现的

         可对字符串内容进行修改

         是一个容器

         很多方法与String相同

         是可变长度的.

         最终可通过toString方法返回字符串


    既然是一个容器对象。应该具备什么功能呢?

     增删改查  C(create)U(update)R(read)D(delete) 

     1,添加:

              StringBuffer append(data);将参数的字符串表示形式追加到序列。

              StringBuffer insert(index,data);在指定index位置插入

     2,删除:

              StringBuffer delete(start,end):包含头,不包含尾。 案例:清空缓冲区sb.delete(0,sb.length());

              StringBuffer deleteCharAt(int index):删除指定位置的元素 

     3,查找(获取):

          char charAt(index);

          int indexOf(string);

          int lastIndexOf(string);

          int length()

          String subString(int start, int end); 而不是StringBuffer

     4,修改:

          StringBuffer replace(start,end,string); 将start到end-1替换成对应的String

          void setCharAt(index,char);

    5. 反转

         StringBuffer reverse();

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

         void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin): sb的srcBegin到srcEnd-1存到dst字符数组中,按从desBegin开始存


     jdk1.5以后出现了功能和StringBuffer一模一样的对象。就是StringBuilder

          不同的是:

              StringBuffer是线程同步的。通常用于多线程。

               StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。


     jdk升级的三个原因:

         1,简化书写。

         2,提高效率。

         3,提高安全性。


    八大基本数据类型及其包装类

    byte          Byte

    short         Short

    int             Integer

    long          Long

    boolean    Boolean

    char          Character

    float          Float

    double      Double

    基本数据类型 转 字符串

         基本数据类型+""

         基本数据类型.toString(基本数据类型值); //Integer.toString(123);

    字符串转基本数据类型

         xxx a = Xxx.parseXxx(String)

         例如int a = Integer.parseInt("123");

                double d = Double.parseDouble("12.33");

                boolean b = Boolean.parseBoolean("true");

    int十进制转其他进制字符串

         转二进制static String toBinaryString(int i)

         转八进制static String toOctalString(int i)

         转十六进制static String toHexString(int)

    任意进制字符串位置int十进制.

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

         int a = Integer.parseInt("123",10); //a=123,与上文一样

         int b = Integer.parseInt("ff",8); //b=255

    或者通过把String类型先封装成Integer对象,然后 对象.intValue()方法得到.


    Integer x = new Integer(4);

    等价于 Integer x = 4;//自动装箱

    x = x + 2;//又能 x.intValue()自动拆箱进行运算再装箱. 


    Integer m  = 128;

    Integer n = 128;

    syso(m == n);

    Integer a= 127;

    Integer b= 127;

    syso(a== b);

    结果分别为false和true

         第一个结果为false很好理解,因为两个不同的对象

         而第二个由于新特性,byte范围类128~127不会开辟新空间.

    ---------thinking、architecture、code、treasure---------
  • 相关阅读:
    详解并发和并行意义
    MoleHill Getting Started AGAL(转)
    解决setInterval计时器不准的问题
    Flash视频播放器开发经验总结
    利用pushState开发无刷页面切换
    用小乐图客抓取人人网照片
    如何在Flash中新窗口打开页面而不被拦截
    响应式开发总结
    用Asroute解决复杂状态切换问题
    对iframe跨域通信的封装
  • 原文地址:https://www.cnblogs.com/elaa/p/3991276.html
Copyright © 2011-2022 走看看