数组排序,StringBuffer类

1、把StringBuffer类中上课讲解的方法在API中进行查询,并用自己的话进行描述

答案:

public int capacity()

获取字符串缓冲区的容量

public int length()

获取字符串的长度

public StringBuffer append(String str)

往容器中添加内容

public StringBuffer insert(int offset,String str)

在指定位置把任意类型的数据插入到字符串缓冲区中,并返回字符串缓冲区

public StringBuffer deleteCharAt(int index)

删除指定位置的字符,并返回本身

public StringBuffer delete(int start,int end)

删除从指定位置开始到指定为结束的字符串,并返回本身

public StringBuffer replace(int start,int end,String str)

从指定位置开始到指定位置结束的字符串用指定的字符串替换

public StringBuffer reverse()

反转容器中的内容,返回该容器本身

public String substring(int start)

从指定位置截取到末尾

public String substring(int start,int end)

截取指定位置开始带结束位置

2、如何实现StringBuffer和String的相互转换?

String---->StringBuffer通过构造方法;通过append();通过insert()方法

StringBuffer----->String toString()

3、如何实现String和int数据的相互转换

int—>String:给int类型的数据加一个空串;String.valueOf(num)

String—>int:Integer.pardeInt(str) 字面上必须时数字

4、如何实现 基本数据类型 与 基本数据封装类 之间的相互转换

自动装箱:将一个基本数据类型,自动转换为对应的包装类型

自动拆箱:将一个包装类型自动转换为对应的基本数据类型

5、请说明String与StringBuffer二者之间的区别?

String:每次对字符串进行拼接操作都会创建一个新的对象,而StringBuffer不用重新创建一个对象;StringBuffer创建时会有一个初始的容量,String没有

6、请说明StringBuffer与StringBilder二者之间的区别?

StringBuffer:线程安全的长度可变的字符容器,线程安全效率低

StringBilder:线程不安全的长度可变的字符容器,线程不安全效率高单线程

B:看程序写结果(写出自己的分析理由),程序填空,改错,看程序写结果。

1、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Demo {

public void method (StringBuffer sb) {

sb.append(“StringBuffer”);

}

public void method (String str) {

str = str + “String”;

}

public static void main (String[] args) {

String str = new String(“java”);

StringBuffer buffer = new StringBuffer(“android”);


Demo d = new Demo();

d.method( str );

System.out.println( str );

d.method( buffer );

System.out.println( buffer );

}

}

结果:

java
androidStringBuffer

2、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Demo {

public static void main (String[] args) {

if (“String”.endsWith("")) {

System.out.println(“True”);

} else {

System.out.println(“False”);

}

}

}

true

3、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Demo {

public static void main (String[] args) {

if (“String”.startsWith("")) {

System.out.println(“True”);

} else {

System.out.println(“False”);

}

}

}

True

4、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Demo {

public static void main (String[] args) {

StringBuffer buffer1 = new StringBuffer(“String”);

StringBuffer buffer2 = new StringBuffer(“String”);

if ( buffer1.equals(buffer2) ) {

System.out.println(“True”);

} else {

System.out.println(“False”);

}

}

}

False

5、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Demo {

public static void main (String[] args) {

StringBuffer buffer1 = new StringBuffer(“abc”);

StringBuffer buffer2 = new StringBuffer(“abc”);

String s1 = new String(“abc”);

String s2 = “abc”;

System.out.println(s1 == s2);

System.out.println(s1 = s2);

System.out.println(buffer1 == buffer2);

System.out.println(buffer1.equals(buffer2) );

}

}

false
true
false
false

6、将下面的程序补充完整

class Demo {

public static void main (String[] args) {

StringBuffer buffer = new StringBuffer(“Hello”);

//向StringBuffer对象中添加新数据"World"

StringBuffer world = buffer.append(“world”);

//向StringBuffer对象Hello与World之间插入"Java"

StringBuffer java = world.insert(world.indexOf(“w”), “Java”);

//把StringBuffer对象中"World"删除

StringBuffer w = java.delete(java.indexOf(“w”),java.indexOf(“d”)+1);

//把StringBuffer对象中"Hello" 更改成"Hi"

StringBuffer replace = w.replace(0, w.indexOf(“o”) + 1, “Hi”);

System.out.println( buffer.toString() );

}

}

7、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Demo {

public static void main (String[] args) {

Integer i = 100;

Integer j = 100;

System.out.println( i == j );


Integer i2 = 200;

Integer j2 = 200;

System.out.println( i2 == j2 );

}

}

true
false

8、给出以下代码,请问该程序的运行结果是什么?如有问题,请说明原因。

class Demo {

public static void main(String[] args){

Integer a1 = Integer.valueOf(100);

Integer b1 = Integer.valueOf(100);

System.out.println( a1 == b1 );

Integer a2 = Integer.valueOf(156);

Integer b2 = Integer.valueOf(156);

System.out.println( a2 == b2 );

}

}

true
false

C:编程题

1、 请编写数组工具类,完成冒泡排序、选择排序、并测试

class MyTest{
    public static void main (String[] args) {
        int[] arr={2,3,1,4,5};
        ShuZuUtils.maoPao(arr);
        ShuZuUtils.xuanZe(arr);
    }
}
class ShuZuUtils {
    public static void maoPao(int[] arr) {
        for (int i = 1; i < arr.length; i++) {
            int j = i;
            while ((j > 0 && arr[j] < arr[j - 1])) {
                int t = arr[j];
                arr[j] = arr[j - 1];
                arr[j - 1] = t;
                j--;
            }
        }
        System.out.println(Arrays.toString(arr));
    }
    public static void xuanZe(int[] arr){
        for (int index = 0; index < arr.length-1; index++) {
            for (int i = 1+index; i < arr.length; i++) {
                if (arr[index] > arr[i]) {
                    int t = arr[index];
                    arr[index] = arr[i];
                    arr[i] = t;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

2、 请默写出快速排序的代码

import java.util.Arrays;
class Test1 {
    public static void main (String[] args) {
        int[] arr = {1, 2, 45, 8, 89, 95, 3, 45, 7, 87, 5, 2, 5, 1};
        s.quickSort(arr, 0, arr.length - 1);
        System.out.println(Arrays.toString(arr));
    }
}
class s {
    public static void quickSort (int[] arr, int start, int end) {
        if (start < end) {
            int index = getIndex(arr, start, end);
            quickSort(arr, start, index - 1);
            quickSort(arr, index + 1, end);
        }
    }
    private static int getIndex (int[] arr, int start, int end) {
        int i = start;
        int j = end;
        int x = arr[i];
        while (i < j) {
            while (i<j&&arr[j]>=x){
                j--;
            }
            if(i<j){
                arr[i]=arr[j];
                i++;
            }
            while (arr[i]<x){
                i++;
            }
            if(i<j){
                arr[j]=arr[i];
            }

        }
        arr[i]=x;
        return i;
    }
}

3、 请默写出插入排序的代码

public class Test3 {
    public static void main (String[] args) {
        int[] arr={2,3,1,4,5};
        for (int i = 1; i < arr.length; i++) {
            int j=i;
            while ((j>0&&arr[j]<arr[j-1])){
                int t=arr[j];
                arr[j]=arr[j-1];
                arr[j-1]=t;
                j--;
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

4、 请对电子邮箱的格式进行校验

public class Email {
    public static void main (String[] args) {
        //以新浪邮箱为例:4~16个字符,可以使用字母,数字,下划线,下划线不能出现在结尾
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的邮箱地址;");
        String email = sc.nextLine();
        String sinaEmail = email.concat("@sina.com");
        String substring = sinaEmail.substring(0, sinaEmail.indexOf("@"));
        if(substring.length()>=4&&substring.length()<=16&&!(substring.endsWith("/"))){
            for(int i=0;i<substring.length()-1;i++){
                char c = substring.charAt(i);
                if(!(Character.isLetter(c)||Character.isDigit(c)||c=='/')){
                    System.out.println("你输入的邮箱格式有误");
                }
                else {
                    System.out.println("注册成功,你的邮箱地址为:"+sinaEmail);
                    break;
                }
            }
        }else {
            System.out.println("你输入的邮箱格式有误");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值