一、看下列程序,不运行说结果,写出答案后,
并在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+" ");
}
}
}