Java学习笔记:String

1.初始化

// public String()

        String string = new String();

     

        // public String(byte[] bytes);

        // params:  bytes : 被用于创建Stirngbyte数组,存放的是字符的ascii

        byte[] bytes = {1, 'a', 'b', 'c', 'd'};

        String string1 = new String(bytes);

        System.out.println(string1);

     

        // public String(char[] value);

        // params:  value : 被用于创建String char数组

        // 创建以后改变字符数组并不会改变String

        char[] chars = {'', '', '', '', ''};

        String string2 = new String(chars);

        System.out.println(string2);

     

        // public String(String original);

        // params:  original : 被用于创建String的原始String

        String string3 = new String(string2);

        System.out.println(string3);

     

        // public String(char[] value, int offset, int count);

        // params:  value : 字符数组

        //          offset : 偏移量

        //          count : 个数;

        // 如果offset count 超出了字符数组的长度就会抛出一个IndexOutOfBoundsException

        // 创建成功以后修改字符数组并不会改变String

        char[] chars = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'};

        String string = new String(chars, 5, 13);

        System.out.println(string);

     

        // public String(int[] codePoints, int offset, int count);

        // params:  codePoints : 数组中存放的字符的ascii

        //          offset : 偏移量

        //          count : 个数

        // 如果offset count 超出了字符数组的长度就会抛出一个IndexOutOfBoundsException

        int[] array = {97, 98, 99, 100, 101, 102, 103, 655394, 9};

        String string = new String(array, 2, 5);

        System.out.println(string);

        

        // public String(byte[] bytes, int offset, int length);

        // public String(byte[] bytes, int offset, int length, String charsetName);

        // params:  bytes : bytes数组,存放的是字符的ascii

        //          offset : 偏移量

        //          length : 字符串长度

        //          charsetName : 字符集名称

        // 如果offset count 超出了字符数组的长度就会抛出一个IndexOutOfBoundsException

        throws UnsupportedEncodingException

        byte[] bytes = {97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108};

        try {

            String string = new String(bytes, 2, 5, "UTF-8");

            System.out.println(string);

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            

        }

        

        //  public String(byte[] bytes, int offset, int length, Charset charset);

        //  params: bytes : 被用于创建Stirngbyte数组,存放的是字符的ascii

        //          offset : 偏移量

        //          length : 长度

        //          charset : 字符集

        //          charset可以通过Charset获取,要包含头文件:import java.nio.charset.Charset;

        byte[] bytes = {97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108};

        String string = new String(bytes, 2, 5, Charset.defaultCharset());

        System.out.println(string);

   

        // public String(byte[] bytes, Charset charset);

        // public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException;

        // params:  bytes : 被用于创建Stirngbyte数组,存放的是字符的ascii

        //          charsetName : charsetName : 字符集名称

        byte[] bytes = {97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108};

        try {

            String string = new String(bytes, "UTF-8");

            System.out.println(string);

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            

        }

        

        // public String(StringBuilder builder);

        // public String(StringBuffer buffer);

        // params:  buffer : 一个StringBuffer类对象

        StringBuffer stringBuffer = new StringBuffer("abc");

        String string = new String(stringBuffer);

        System.out.println(string);



2.常用方法

/**

         *  Method Detail

         */

        String string = "1234567890abca";

        

        

        //  public int length();

        //  获取字符串长度

        int l = string.length();

        System.out.println("string length = " + l);

        //  string length = 10

        

        //  public boolean isEmpty();

        //  判断字符串是否为空

        boolean b = string.isEmpty();

        System.out.println("string is empty : " +  b);

        System.out.println("is empty : " + "".isEmpty());

        //  string is empty : false

        //  is empty : true

        

        //  public char charAt(int index);

        //  获取字符串index位的字符

        //  是从第0位开始

        //  如果index超出了字符串长度就抛出IndexOutOfBoundsException

        char c = string.charAt(5);

        System.out.println("string charAt(5) : " + c);

        //  string charAt(5) : 6

        

        //  public int codePointAt(int index);

        //  获取字符串index位的字符的ascii

        //  是从第0位开始

        //  如果index超出了字符串长度就抛出IndexOutOfBoundsException

        int code = string.codePointAt(13);

        System.out.println("string code : " + code);

        //  string code : 21704

        

        

        //  public int codePointBefore(int index);

        //  获取字符串index - 1位的字符的ascii

        code = string.codePointBefore(15);

        System.out.println("string code :" + code);

        //  string code :21704

        

        

        //  public int codePointCount(int beginIndex, int endIndex);

        //  在此字符串指定的文本范围,方法返回数字的Unicode代码点。文本范围始于指定的beginIndex,并延伸到索引endIndex - 1char。因此,文本范围的长度(以字符为单位)是endIndex-beginIndex.

        //  params: beginIndex : 这是该指数的第一个字符的文本范围

        //          endIndex : 这是该指数后的最后一个字符的文本范围

        //  IndexOutOfBoundsException -- 如果beginIndex是负或endIndex大于这个字符串的长度或beginIndex是大于endIndex

        code = string.codePointCount(0, string.length());

        System.out.println("string code :" + code);

        //  string code :15

        

        

        //  public int offsetByCodePoints(int index, int codePointOffset);

        //  offsetByCodePoints方法返回此String中从给定的index处偏移codePointOffset个代码点的索引。文本范围内由indexcodePointOffset给定的未配对代理项各计为一个代码点。

        //  params: index : 是要偏移的索引

        //          codePointOffset : 为代码点中的偏移量

        code = string.offsetByCodePoints(1, 5);

        System.out.println("offsetByCodePoints code :" + code);

        //  offsetByCodePoints code :6


        

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

        //  从字符串中截取从srcBeginsrcEnd的所有字符存入到dst字符数组中,并从字符数组的dstBegin开始存

        //  params: srcBegin : 要复制的第一个字符

        //          srcEnd : 要复制的最后一个字符

        //          dst : 要存储复制的所有字符的字符数组

        //          dstBegin : 字符数组存储字符时的偏移量

        char[] dst = new char[20];

        string.getChars(2, 10, dst, 10);

        for (int i = 0; i < dst.length; i++) {

            System.out.print(dst[i] + " ");

        }

        System.out.println();

        //            3 4 5 6 7 8 9 0

        

        

        //  public byte[] getBytes();

        //  public byte[] getBytes(Charset charset);

        //  public byte[] getBytes(String charsetName) throws UnsupportedEncodingException;

        //  编码字符串转换成使用指定的字符集的字节序列,并将结果存储到一个新的字节数组

        try {

            byte[] bytes = string.getBytes("UTF-8");

            for (int i = 0; i < bytes.length; i++) {

                System.out.print(bytes[i] + " ");

            }

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            System.out.println();

        }

        //  49 50 51 52 53 54 55 56 57 48 -27 -109 -120 97 98 99 -27 -109 -120 97

        

        

        //  public boolean equals(Object anObject);

        //  用于比较字符串与指定的对象,当anObject不为null并且是一个String对象,以及这个对象表示的字符序列与string一致时,返回true,否则返回false

        boolean eB = string.equals("1234567890abc");

        System.out.println("equals eb : " + eB);

        System.out.println("equals2 : " + string.equals("1234567890abca"));

        //  equals eb : false

        //  equals2 : true

        

        

        

        //  public boolean contentEquals(StringBuffer sb);

        //  用于比较字符串与指定的StringBuffer对象,当这个对象表示的字符序列与string一致时,返回true,否则返回false

        StringBuffer stringBuffer = new StringBuffer(string);

        eB = string.contentEquals(stringBuffer);

        System.out.println("contentEquals eB : " + eB);

        stringBuffer.insert(2, "1");

        eB = string.contentEquals(stringBuffer);

        System.out.println("stringbuffer = " + stringBuffer + "\n" + "eB : " + eB);

        //  contentEquals eB : true

        //  stringbuffer = 12134567890abca

        //  eB : false


你可能感兴趣的:(java,String)