《Java基础入门第2版》--黑马程序员 课后答案及其详解 第5章 Java中的常用类

本文详细介绍了Java中字符串和日期的基本操作,包括String与StringBuffer的区别、Date和Calendar类的使用方法,以及自动装箱和拆箱的概念。此外,还提供了编程示例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、填空题

1、	String、StringBuffer
2、	Date、Calendar、DateFormat
3、	DateFormat
4、	静态
5、edcba

二、判断题

1、错  2、错  3、对  4、错  5、对

三、选择题

1、C     2、C    3、B    4、A     5、B

四、简答题

1、String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

2、Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。
Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Date date)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。

3、自动装箱是指将基本数据类型的变量赋给对应的包装类变量,反之,拆箱是指将包装类对象类型 直接赋给一个对应的基本数据类型变量。

五、编程题

1.public class Test01 {
	public static void main(String[] args) {
		String str = "HelloWorld";
		// 字符串转成char数组
		char[] ch = str.toCharArray();
		StringBuffer buffer = new StringBuffer();
		for (int i = str.length() - 1; i >= 0; i--) {
			if (ch[i] >= 'A' && ch[i] <= 'Z') {
				buffer.append(String.valueOf(ch[i]).toLowerCase());
			} else if (ch[i] >= 'a' && ch[i] <= 'z') {
				buffer.append(String.valueOf(ch[i]).toUpperCase());
			}
		}
		System.out.println(buffer.toString());
	}
}
2.import java.util.Random;
public class Test {
	public static void main(String[] args) {
		Random rand = new Random();
		for (int i = 0; i < 5; i++) {
			int num = 20 + rand.nextInt(11);
			System.out.println(num);
		}
	}
}

六、原题及其解析

一.填空题
1.在Java中定义了两个类来封装对字符串的操作,它们分别是()和()。String StringBuffer

2.Java中的操作日期的类有()、()和()等。Date Calendar DateFormat

3.Java中专门用于将日期格式化为字符串的类是()。DateFormat

4.System类中所提供的属性和方法都是()的,想要引用这些属性和方法,直接使用System类调用即可。静态

5.已知sb为StringBuffer的一个实例,且sb.toString()的值为’abcde’,则执行sb.reverse()后,sb.toString的值为()。edcba

二.判断题
1.String对象和StringBuffer对象都是字符串变量,创建后都可以修改。()错×

2.用运算符==比较字符串对象时,如果两个字符串的值相同,结果为true。()错×

3.System类中的currentTimeMillis()方法返回一个long类型的值。()对√

4.Date、Calendar以及DateFormat类都位于java.util包中。()错×

5.String类的方法replace(CharSequence srt1,CharSequence srt2)返回一个新的字符串,它是通过用srt2替换此字符串中出现的所有srt1得到的。()对√

三.选择题
1.以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?()C
A.ceil() B.floor() C.abs() D.random()

2.String s = “abcdedcba”;则s.substring(3,4)返回的字符串是以下哪个选项中的哪个?()C
A. cd B.de C.d D.e

3.要产生[20,999]之间的随机整数可以使用以下哪个表达式?()B
(本题的星号改为了×,星号在Markdown编辑器中有不同的含义。)
A.(int)(20+Math.random()×97)
B.20+(int)(Math.random()×980)
C.(int)Math.random()×999
D.20+(int)Math.random()×980

4.下面的程序执行后,输出的结果是以下哪个选项?()A

StringBuffer buf = new StringBuffer("Beijing2008");
buf.insert(7,"@");
System.out.println(buf.toString());

A.Beijing@2008 B.@Beijing2008
C.Beijing2008@ D.Beijing#2008

5.先阅读下面的程序片段:

String str1 = new String("java");
String str2 = new String("java");
StringBuffer str3 = new StringBuffer("java");

对于上述定义的变量,以下表达式的值为true的是哪个?()B
A.str1 = = str2; B.str1.equals(str2);
C.str1 = = str3; D.以上都不对

四.简答题
1.简述String和StringBuffer有什么区别。
String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

2.简述Date和Calender类有什么区别和联系。
Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。
Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Date date)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。


3.简述什么是自动装箱和自动拆箱。
自动装箱是指将基本数据类型的变量赋给对应的包装类变量,反之,拆箱是指将包装类对象类型 直接赋给一个对应的基本数据类型变量。

五.编程题
1.编写一个程序,实现字符串大小写的转换并倒序输出。要求如下:
(1)使用for循环将字符串"HelloWorld"从最后一个字符开始遍历。
(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。
(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。

public class Test01 {
	public static void main(String[] args) {
		String str = "HelloWorld";
		// 字符串转成char数组
		char[] ch = str.toCharArray();
		StringBuffer buffer = new StringBuffer();
		for (int i = str.length() - 1; i >= 0; i--) {
			if (ch[i] >= 'A' && ch[i] <= 'Z') {
				buffer.append(String.valueOf(ch[i]).toLowerCase());
			} else if (ch[i] >= 'a' && ch[i] <= 'z') {
				buffer.append(String.valueOf(ch[i]).toUpperCase());
			}
		}
		System.out.println(buffer.toString());
	}
}

2.利用Random类来产生5个20~30之间的随机整数。

提示:[n-m] (n、m均为整数,n<m)之间的随机数的公式为n+(new Random () ).nextInt(m-n+1)

import java.util.Random;
public class Test {
	public static void main(String[] args) {
		Random rand = new Random();
		for (int i = 0; i < 5; i++) {
			int num = 20 + rand.nextInt(11);
			System.out.println(num);
		}
	}
}
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

香鱼嫩虾

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

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

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

打赏作者

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

抵扣说明:

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

余额充值