java代码打出⼀只狗_java基础1
1.简述String类中的equals⽅法与Object类中的equals⽅法的不同点。
答: String类中的equals⽅法是⽤来判断两个对象的内容是否相同,Object类中的equals⽅法是⽤来判断两个对象是否是内存的同⼀块内存空间。
2.下列代码运⾏结果
public classToStringTest{static int i = 1;public static voidmain(String args[]){c++string类型
System.out.println("love " + new ToStringTest());//love java
ToStringTest a = newToStringTest();
a.i++;
System.out.println("aa " + a.i);//aa 2
}publicString toString(){
System.out.print("I ");//I
return "java ";
}
}
I love java
aa 2
原因:当执⾏代码的时候,⾸先加载静态变量,然后执⾏main⽅法,由于main⽅法内部第⼀⾏代码为输出语句,⾥⾯new了此类对象,当执⾏此⾏代码时会先创建了本类的对象,由于此类重写了toString⽅法,会先执⾏toString⽅法的打印输出,然后返回“java ”,再执⾏main⽅法第⼀⾏打印输出。在Java中“System.out.println(类对象名);”实际输出的是该对象的toString()⽅法返回的字符串,即括号中的内容等价于类对象名.toString(),toString⽅法的好处是在碰到println⽅法的时候会被⾃动调⽤,不⽤显⽰的写出来。
3.下列代码运⾏结果
(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
4.简述StringBuilder类与String类的区别。
答:String类的对象内容不可改变,所以每当进⾏字符串拼接时,总是会在内存中创建⼀个新的对象,所以经常改变内容的字符串最好不要⽤String,因为每次⽣成对象都会对系统性能产⽣影响。
StringBuilder⼜称为可变字符序列,是JDK5.0中新增加的⼀个类,它是⼀个类似于String的字符串缓冲区,通过某些⽅法调⽤可以改变该序列的长度和内容。即它是⼀个容器,容器中可以装很多字符串,并且能够对其中的字符串进⾏各种操作。它的内部拥有⼀个数组⽤来存放字符串内容,进⾏字符串拼接时,直接在数组中加⼊新内容,StringBuilder会⾃动维护数组的扩容。
5.模拟在⼀副牌中,抽取第1张,第5张,第50张扑克牌。
public classTest3 {public static voidmain(String[] args) {//获取所有扑克牌
String[] puke =getPuke();//抽取指定的三种扑克牌
int num1 = 1;int num2 = 5;int num3 = 50;
String[] pk3=get3(puke , num1 ,num2,num3);//打印抽取的牌
for (int i = 0; i < pk3.length; i++) {
System.out.print(pk3[i]+ " ");
}
}private staticString[] getPuke() {
String[] colors={"⿊⾊","红桃","梅花","⽅块"};
String[] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] puke= new String[54];int index = 0;for (int i = 0; i < nums.length; i++) {for (int j = 0; j < colors.length; j++) {
puke[index]= colors[j]+nums[i];
index++;
}
}
puke[52] = "⼩王";
puke[53] = "⼤王";returnpuke;
}public static String[] get3(String[] puke, int i, int i2, inti3) {
String[] pk3= new String[3];
pk3[0] = puke[i - 1];
pk3[1] = puke[i2 - 1];
pk3[2] = puke[i3 - 1];returnpk3;
}
}
6.获取当前的⽇期,并把这个⽇期转换为指定格式的字符串,如2088-08-08 08:08:08。
public classDateTest {public static voidmain(String[] args) {//获取当前⽇期对象 now;
Date now = newDate();//创建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);
}
}
7.使⽤SimpleDateFormat类,把2018-05-04转换为2018年05⽉04⽇。
public classDateFormatTest {public static void main(String[] args) throwsParseException {//创建SimpleDateFormat对象df1,指定⽇期模式为yyyy-MM-dd
SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");//调⽤df1的parse(String str)⽅法传⼊2018-05-04,得到对应⽇期类型
Date date = df1.parse("2018-05-04");//创建⽇期格式化对象df2,在获取格式化对象时可以指定风格
DateFormat df2 = new SimpleDateFormat("yyyy年MM⽉dd⽇");//调⽤df2的format(Date date) 传⼊刚才转换的⽇期
String str =df2.format(date);
System.out.println(str);
}
}
8.现有⼀个字符数组{'i','t','c','a','s','a'},请使⽤System类中的arraycopy()⽅法在控制台输出“itcast”。(提⽰:将[1]号数组元素复制到最后位置并覆盖原有元素。)
public classArraycopyTest {public static voidmain(String[] args) {char[] cha ={'i','t','c','a','s','a'};//将cha数组中第2个元素,复制到⽬标数组最后⼀位数组上
System.arraycopy(cha, 1, cha, 5, 1);//遍历⽬标数组,在控制台输出字符串
for (int i = 0; i < cha.length; i++) {
System.out.print(cha[i]);
}
}
}
9.⽤程序判断2018年2⽉14⽇是星期⼏
public classCalendarTest01 {public static voidmain(String[] args) {//创建Calendar对象
Calendar c =Instance();//将给定的⽇历字段设置到Calendar对象中
c.set(Calendar.YEAR, 2018);
c.set(Calendar.MONTH,1);
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 =(Calendar.DAY_OF_WEEK));//输出结果
System.out.println(year+"年"+month+"⽉"+date+"⽇是星期"+week);
}//定义⽅法,获取星期汉字
public static char getWeek(inta){char[] c = {' ','⽇','⼀','⼆','三','四','五','六'};returnc[a];
}
}
10.分析以下需求,并⽤代码实现:
(1)定义数字字符串数组{"010","3223","666","7890987","123123"};
(2)判断该数字字符串数组中的数字字符串是否是对称(第⼀个数字和最后⼀个数字相等,第⼆个数字和倒数第⼆个数字是相等的,依次类推)的,并逐个输出;
(3)如:010 是对称的,3223 是对称的,123123 不是对称的;
(4)最终打印该数组中对称字符串的个数。
public classStringBuilderTest02 {public static void main(String[] args) throwsIOException {//定义数字字符串数组
String[] str = {"010","3223","666","7890987","123123"};
SBTest(str);
}public static voidSBTest(String[] str) {int count = 0;//遍历定义的字符串数组
for(String string : str) {//创建StringBuilder对象
StringBuilder sb = newStringBuilder(string);//调⽤reverse()⽅法,将遍历的数字进⾏反转,然后⽤equals()⽅法对⽐是否与原数字相同
verse().toString().equals(string)) {
count++;
System.out.println(string+ "是对称的");
}
}
System.out.println("总数为" +count);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。