Java中基础知识的练习和总结,记得收藏本文哦(一)!

练习一:Object类equals方法

一、简述String类中的equals方法与Object类中的equals方法的不同点。

答:String类中的equals方法是用来判断两个对象的内容是否相同,而Object 类中的equals方法是用来判断两个对象是否是同一个对象,所谓同一个对象指的是内存中的同一块存储空间。

练习二:StringBuilder类与String类的区别

二、简述StringBuilder类与String类的区别。

答:String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响。
StringBuilder又称为可变字符序列,是JDK5.0中新增加的一个类,它是一个类似于String的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。即它是一个容器,容器中可以装很多字符串,并且能够对其中的字符串进行各种操作。它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容,StringBuilder会自动维护数组的扩容。

练习三:Date类的使用

三、请用代码实现:获取当前的日期,并把这个日期转换为指定格式的字符串,如2088-08-08 08:08:08。

public class DateTest {
    
    
    public static void main(String[] args) {
    
    
        //获取当前日期对象 now;
        Date now = new Date();
        //创建SimpleDateFormat对象 df,并制定日期格式
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //调用df的format(Date  date) 方法,传入now; 接收返回的字符串
        String datestr = df.format(now);
        //打印这个字符串
        System.out.println(datestr);
    }
}

练习四:DateFormat类方法的使用

四、使用SimpleDateFormat类,把2020-12-10转换为2020年12月10日。

public class DateFormatTest {
    
    
    public static void main(String[] args) throws ParseException {
    
    
        //创建SimpleDateFormat对象df1,指定日期模式为yyyy-MM-dd
        SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
        //调用df1的parse(String str)方法传入2018-03-04,得到对应日期类型
        Date date = df1.parse("2020-12-10");
        //创建日期格式化对象df2,在获取格式化对象时可以指定风格
        DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");
        //调用df2的format(Date date) 传入刚才转换的日期
        String str = df2.format(date);
        System.out.println(str);
    }
}

练习五:Calendar类方法的使用

五、用程序判断2020年10月14日是星期几。

public class CalendarTest01 {
    
    
    public static void main(String[] args) {
    
    
        //创建Calendar对象
        Calendar c = Calendar.getInstance();
        //将给定的日历字段设置到Calendar对象中
        c.set(Calendar.YEAR, 2020);
        c.set(Calendar.MONTH, 10);
        c.set(Calendar.DATE, 14);
        //设置年
        int year = c.get(Calendar.YEAR);
        //设置月
        int month = c.get(Calendar.MONTH)+1;
        //设置日
        int date = c.get(Calendar.DATE);
        //设置星期
        char week = getWeek(c.get(Calendar.DAY_OF_WEEK));
        //输出结果
        System.out.println(year+"年"+month+"月"+date+"日是星期"+week);
    }
    //定义方法,获取星期汉字
    public static char getWeek(int a){
    
    
        char[] c = {
    
    ' ','日','一','二','三','四','五','六'};
        return c[a];
    }
}

练习六:System类arraycopy方法的使用

六、现有一个字符数组{‘o’,‘r’,‘i’,‘g’,‘i’,‘n’},请使用System类中的arraycopy()方法在控制台输出“origin”。(提示:将[1]号数组元素复制到最后位置并覆盖原有元素。)

public class ArraycopyTest {
    
    
    public static void main(String[] args) {
    
    
        char[] cha ={
    
    'o','r','i','g','i','n'};
        //将cha数组中第2个元素,复制到目标数组最后一位数组上
        System.arraycopy(cha, 1, cha, 5, 1);
        //遍历目标数组,在控制台输出字符串
        for (int i = 0; i < cha.length; i++) {
    
    
    	    System.out.print(cha[i]);
		}
    }
}

练习七:StringBuilder类的使用(reverse()方法)

七、分析以下需求,并用代码实现:

(1)定义数字字符串数组{"010","3223","666","7890987","123123"};
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出;
(3)如:010 是对称的,3223 是对称的,123123 不是对称的;
(4)最终打印该数组中对称字符串的个数。

注:判断对称可用reverse(),将此字符序列用其反转形式取代。

public class StringBuilderTest02 {
    
    
    public static void main(String[] args) throws IOException {
    
    
        //定义数字字符串数组
        String[] str = {
    
    "010","3223","666","7890987","123123"};
        SBTest(str);
    }

    public static void SBTest(String[] str) {
    
    
        int count = 0;
        //遍历定义的字符串数组
        for (String string : str) {
    
    
            //创建StringBuilder对象
            StringBuilder sb = new StringBuilder(string);
            //调用reverse()方法,将遍历的数字进行反转,然后用equals()方法对比是否与原数字相同
            if (sb.reverse().toString().equals(string)) {
    
    
                count++;
                System.out.println(string + "是对称的");
            }
        }
        System.out.println("总数为" + count);
    }
}

练习八:StringBuilder类的使用

八、分析以下需求,并用代码实现:

	(1)打印由7,8,9三个数组成的三位数,要求该三位数中任意两位数字不能相同;
	(2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987。

注:要求使用StringBuilder来完成

public class StringBuilderTest03 {
    
    
    public static void main(String[] args) throws IOException, Exception {
    
    
        SBTest();
    }

    public static void SBTest() {
    
    
        //定义由7、8、9组成的字符串
        String s = "789";
        //创建StringBuilder对象
        StringBuilder sb = new StringBuilder();
        //采用嵌套for循环,遍历字符串
        for (int i = 0; i < 3; i++) {
    
    
            //遍历字符串s,把字符依次添加到StringBuilder内,组成一个元素
            for (int j = 0; j < s.length(); j++) {
    
    
                sb.append(s.charAt(j));
            }
            //当StringBuilder内元素为一个和两个时,需要加空格来隔开元素
            if (i != 2) {
    
    
                sb.append(" ");
            }
            //把字符串s的第一个元素切割,添加到字符串末位,组成新的字符串
            s = s.substring(1).concat(s.substring(0, 1));
        }
        // 把StringBuilder内元素反转,组成新的数字
        s = sb.toString() + " " + sb.reverse().toString();
        System.out.println(s);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44723773/article/details/111086216