首页

源码搜藏网

首页 > 开发教程 > 软件工程 >

StringBuffer(StringBuilder)_sort()_Arrays

创建时间:2016-06-06 23:26  

13.01_常见对象(StringBuffer类的概述)

13.02_常见对象(StringBuffer类的构造方法)

public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        System.out.println(sb.length());    //0,容器的字符个数
        System.out.println(sb.capacity());  //16,容器的初始容量

        StringBuffer sb1 = new StringBuffer(10);
        System.out.println(sb1.length());   //0,容器的字符个数
        System.out.println(sb1.capacity()); //10,可设置容器的初始容量

        StringBuffer sb2 = new StringBuffer("hongwei");
        System.out.println(sb2.length());   //7,容器的字符个数
        System.out.println(sb2.capacity()); //23,字符个数+容器的初始容量
    }

13.03_常见对象(StringBuffer的添加功能)

        StringBuffer sb_1 = new StringBuffer("abc");
        StringBuffer sb_2 = sb_1.append(100);
        System.out.println(sb_1.toString());    //"abc100"
        System.out.println(sb_2.toString());    //"abc100"

        String s = "abc";
        String s1 = s.substring(1);
        System.out.println(s);  //“abc”
        System.out.println(s1); //"ab"
* public StringBuffer **insert**(int offset,String str):
    * 在offset位置把任意类型的数据str插入到字符串缓冲区里面,并返回字符串缓冲区本身.如果不存在offset位置,报索引越界异常错误。

13.04_常见对象(StringBuffer的删除功能)

13.05_常见对象(StringBuffer的替换和反转功能)

13.06_常见对象(StringBuffer的截取功能及注意事项)

        StringBuffer sb = new StringBuffer("1234");
        sb.append(567);
        System.out.println(sb); //1234567

        sb.insert(3,"hong");
        System.out.println(sb); //123hong4567

        sb.deleteCharAt(3);
        System.out.println(3);  //123ong4567

        sb.delete(3,6);
        System.out.println(sb);//1234567,删除包括start,不包括尾
        //sb.delete(0,sb.length()); //清空缓冲区

        sb.replace(3, 5, "hong");//包含头,不包含尾
        System.out.println(sb);//123hong67

        sb.reverse();
        System.out.println(sb); //76gnoh321

        sb.reverse();
        String s = sb.substring(3, 7);
        System.out.println(sb); //123hong67,注意:返回值不再是本身,包含头,不包含尾
        System.out.println(s);  //hong  

13.07_常见对象(StringBuffer和String的相互转换)

13.08_常见对象(把数组转成字符串)

private static void formatPrint() {
        //sb.append(arr[i]+"]"); //要再创建一个StringBuffer对象,浪费资源
        //这里使用StringBuffer,只需要创建一次对象。要是使用String对象,后面每次更改值,之前的都变为垃圾,浪费资源。
        StringBuffer sb = new StringBuffer();
        int arr[] ={1,2,3};
        sb.append("[");
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length-1){
                sb.append(arr[i]).append("]");
            }else{
                sb.append(arr[i]).append(",");
            }
        }
        System.out.println(sb);
    }

13.09_常见对象(字符串反转)

public static void main(String[] args) {
        //formatPrint();
        Scanner sc = new Scanner(System.in);
        StringBuffer sb = new StringBuffer(sc.nextLine());
        sb.reverse();
        System.out.println(sb);
    }

13.10_常见对象(StringBuffer和StringBuilder的区别)

13.11StringBuffer和String的区别

1.StringBuffer和String的区别**
* String是一个不可变的字符序列
* StringBuffer是一个可变的字符序列

2.常见对象(String和StringBuffer分别作为参数传递)
* A:形式参数问题
* String作为参数传递,虽然是引用数据类型,但是当做参数传递时和基本数据类型是一样的
* StringBuffer作为参数传递

public class Demo4_String_StringBuffer {
    public static void main(String[] args) {
    //String虽然是引用数据类型,但是当做参数传递时和基本数据类型是一样的
        String s = "123";
        change(s);
        System.out.println(s);  //123

        StringBuffer sb = new StringBuffer("123");
        change(sb);
        System.out.println(sb); //123hongwei
    }

    private static void change(StringBuffer sb) {
        sb.append("hongwei");
    }

    private static void change(String s) {
        s+="hongwei";
    }
}

13.12_常见对象(数组高级冒泡排序原理图解)

private static void sort(int[] arr) {
        for(int i=0;i<arr.length-1;i++)
            for(int j=0;j<arr.length-1-i;j++){
                if(arr[j+1]<arr[j]){
                    int temp = arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=temp;
                }
            }
        for (int i : arr) {
            System.out.print(i+" ");
        }
    }

13.14_常见对象(数组高级选择排序原理图解)

public static void selectSort(int[] arr) {      
        for(int i=0;i<arr.length;i++){
            int k=i;
            for(int j=i+1;j<arr.length;j++){
                if(arr[j]<arr[i]){
                    if(arr[j]<arr[k]){
                        k=j;
                    }
                }
            }
            int temp =arr[i];
            arr[i]=arr[k];
            arr[k]=temp;
        }
    }

或者

    public static void selectSort1(int[] arr) {     
        for(int i=0;i<arr.length;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[j]<arr[i]){
                    int temp =arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }

        }
    }

13.16_常见对象(数组高级二分查找原理图解)

public static void main(String[] args) {
        int[] arr ={1,5,8,13,59};
        System.out.println(binaryFind(arr,8));
    }

    public static int binaryFind(int[] arr,int value) {
        int min=0;
        int max=arr.length-1;
        int mid = (min+max)/2;
        while(arr[mid]!=value){
            if(arr[mid]<value){
                min = min+1;
            }else if(arr[mid]>value){
                max=max-1;
            }
            mid = (min+max)/2;
            if(min>max){
                return -1;
            }
        }
        return mid;
    }

13.18_常见对象(Arrays类的概述和方法使用)

13.19_常见对象(基本类型包装类的概述)

13.20_常见对象(Integer类的概述和构造方法)

13.21_常见对象(String和int类型的相互转换)

Integer i1 = new Integer("100");
int i2=i1.intValue();
* public static int **parseInt**(String s)

基本数据类型包装类有八中,其中有七个有parseXxx(),可以将这其中的字符串表现形式转化为基本数据类型
char没哟,字符串转为字符数组,用toCharArray()

13.22_常见对象(JDK5的新特性自动装箱和拆箱)

13.23_常见对象(Integer的面试题)

-128到127是byte的取值范围,如果在这个取值范围内,自动装箱就不会创建新的对象,直接在常量池中获取;
如果超过byte的取值范围,就会再新创建对象

13.24_day13总结

0
0
   
上一篇:数据结构是哈希表(hashTable)
下一篇:【Leetcode】Rectangle Area

相关内容

热门推荐