String、StringBuilder和StringBuffer类

时间:2017-11-04 10:40:16   收藏:0   阅读:304

简介

String/StringBuilder/StringBuffer这3个类都能创建字符串对象,它们都继承自Object类。

其中String对象一经创建,空间固定不变,无法再向其中增、删数据。即使提供了replace()方法,但也是一个字符对应一个字符的替换。总之它的空间大小不变。

而后两者都是可变空间的String对象,因此它们都提供了append()方法、insert()方法以及delete()等修改空间数据的功能。StringBuilder类是StringBuffer类的简版,但效率更高,且它们提供的功能是完全一致的。因此在StringBuilder能满足要求时,建议使用StringBuilder类而非StringBuffer类。

StringBuilder类和StringBuffer类

它们的使用方法完全一致。因此以StringBuilder类为例。

该类用于创建String类,并提供向String数据中插入、删除数据的功能。它最主要的两个方法是append()和insert()。

构建String对象:

StringBuilder sb1 = new StringBuilder();  //对象中包含空字符串
StringBuilder sb2 = new StringBuilder("ac");  //对象中包含字符串ac
System.out.println(sb1);
System.out.println(sb2);

append()方法用于向已有String对象的尾部追加字符串数据,如果数据不是字符串类型,则会使用toString()方法转换为String类型。

StringBuilder sb = new StringBuilder("ac");
sb.append("xx");
sb.append(3);
sb.append(3.12);
System.out.println(sb);  //return value: acxx33.12

insert()方法用于向指定位置处插入数据。

StringBuilder sb = new StringBuilder("ac");
sb.append("xx");     //acxx
sb.append(3);        //acxx3
sb.append(3.12);     //acxx33.12
sb.insert(3,"x");    //acxxx33.12
sb.insert(3,2.12);   //acx2.12xx33.12

还有以下一些String相关的通用方法,其中如果包含start、end位置的方法,一般都不会计算end边界。

String类

几个重要的方法:

还有些其他方法:

int[]数组转String[]数组

例如,有一个int[]数组,想将该数组转换为String[]。这相当于重写一个"String[] toString(int[] arr)"方法。

import java.util.*;
    //int[]-->String[]
    public static String[] toString(int[] arr) {
        String[] sarr = new String[arr.length];
        for (int i=0;i<arr.length;i++) {
            sarr[i] = Integer.valueOf(arr[i]).toString();
        }
        return sarr;
    }

public class TestToString {
    public static void main(String[] args) {
        int[] arr = {12,3,4,5,66};
        String[] sarr = toString(arr);
        System.out.println(Arrays.toString(sarr));
    }
}

int[]数组转String字符串

例如int[]数组{1,2,3,4}转成字符串,结果为"1 2 3 4"。即将数组中的值变为字符串并使用空格分隔。

public class IntToString {

    // int[] --> String
    public static String toString(int[] arr) {
        StringBuilder sarr = new StringBuilder();
        for (int i=0;i<arr.length;i++) {
            if (i != arr.length - 1) {
                sarr.append(arr[i] + " ");
            } else {
                sarr.append(arr[i]);
            }
        }
        return sarr.toString();
    }

    public static void main(String[] args) {
        int[] arr = {12,3,4,5,66};
        String sarr = toString(arr);
        System.out.println(sarr);
    }
}

转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/7782141.html

注:若您觉得这篇文章还不错请点击右下角推荐,您的支持能激发作者更大的写作热情,非常感谢!

原文:http://www.cnblogs.com/f-ck-need-u/p/7782141.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!