【Object类、常用API】小练习

一、看下列程序,不运行说结果,写出答案后,
    并在IntelliJ IDEA中运行看看自己给的答案与运行结果是否正确,并分析原因。
    (1)
        String s1 = new String("abc");
        String s2 = "abc";
        System.out.println(s1 == s2);       //false
        System.out.println(s1.equals(s2));  //true       
    (2)
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);         //true
        System.out.println(s1.equals(s2));       //true
    (3)
        String s1 = "a" + "b" + "c";
        String s2 = "abc";
        System.out.println(s1 == s2);         //true
        System.out.println(s1.equals(s2));      //true
    (4)
        String s1 = "ab";
        String s2 = "abc";
        String s3 = s1 + "c";
        System.out.println(s3 == s2);        //false
        System.out.println(s3.equals(s2));   //true

二、使用SimpleDateFormat类,把2018-03-04转换为2018年03月04日。

三、用程序判断2018年2月14日是星期几。

四、分析以下需求,并用代码实现:
    (1)定义数字字符串数组{"010","3223","666","7890987","123123"};
    (2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出;
    (3)如:010 是对称的,3223 是对称的,123123 不是对称的;
    (4)最终打印该数组中对称字符串的个数。
    注:判断对称可用StringBuilder中的reverse(),将此字符序列用其反转形式取代。

五、分析以下需求,并用代码实现:
        (1)打印由7,8,9三个数组成的三位数,要求该三位数中任意两位数字不能相同;
        (2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987。
    注:要求使用StringBuilder来完成

 

 




import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;

import static java.util.Arrays.sort;


public class test01 {
    public static void main(String[] args) throws ParseException {

//        homework01();
//        homework02();
//        homework03();
        homework04();
    }

    public static void homework01() throws ParseException {
//   使用SimpleDateFormat类,把2018-03-04转换为2018年03月04日。"yyyy年MM月dd日"
        String str1="2018-03-04";
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日");
        Date date1=sdf1.parse(str1);
        String str2=sdf2.format(date1);
        System.out.println(str2);
    }


//    用程序判断2018年2月14日是星期几。
    public static void homework02() throws ParseException {

        String dateStr="2018年2月14日";
        Date date=new SimpleDateFormat("yyyy年MM月dd日").parse(dateStr);
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        int week=c.get(Calendar.DAY_OF_WEEK);

        String[] str={"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
        System.out.println(str[week]);

    }

    //星期三



    /*
    分析以下需求,并用代码实现:
	(1)定义数字字符串数组{"010","3223","666","7890987","123123"};
	(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出;
	(3)如:010 是对称的,3223 是对称的,123123 不是对称的;
	(4)最终打印该数组中对称字符串的个数。
    注:判断对称可用StringBuilder中的reverse(),将此字符序列用其反转形式取代。
     */
    public static void homework03() {
        int count = 0;
        String[] arr = {"010", "3223", "666", "7890987", "123123"};
        for (int i = 0; i < arr.length; i++) {
            StringBuilder bu = new StringBuilder(arr[i]);
            bu.reverse();
            String str = bu.toString();
            if (str.equals(arr[i])) {
                System.out.println(arr[i] + "是对称的");
                count++;
            }
        }
        System.out.println("对称字符串的个数为:" + count + "个");


    }


//    分析以下需求,并用代码实现:
//            (1)打印由7,8,9三个数组成的三位数,要求该三位数中任意两位数字不能相同;
//            (2)打印格式最后的三位数字以空格分隔,如789 798 879 897 978 987。
//    注:要求使用StringBuilder来完成
    public static void homework04(){

            StringBuilder s1 = new StringBuilder("78978");
            int[] ints = new int[6];
            int count = 0;
            for(int i = 0; i < 3; i ++) {
                //从"78987"中按索引截取3个数字
                StringBuilder s2 = new StringBuilder(s1.substring(i, (i + 3)).toString());
                //拿到s1 把s1转换成基本类型int型,存到数组中
                ints[count ++] = Integer.parseInt(s2.toString());
                //把s1反转,得到s2,转换成基本类型int型,存到数组中
                ints[count ++] = Integer.parseInt(s2.reverse().toString());
//                System.out.println(s2.toString());
//                System.out.println(s2.reverse().toString());
            }
            //打印
            sort(ints);

            //把int型转成String类型,连接空格打印
            for (int num : ints) {
                System.out.print(num+" ");
            }



    }
}


 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子丶Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值