内容正文:
数组、字符串、包(二)
一、选择题
1. 下列关于 String 对象的说法中,错误的是( )。
A. String 对象的内容一旦创建就不能修改
B. String 对象可以通过赋值一个字符串变量或表达式来改变其内容
C. String 对象的 equals(Object obj) 方法比较的是对象的内容
D. String 对象的 hashCode() 方法返回的是对象的内存地址
答案:B
解析:String 对象是不可变的,一旦创建,其内容就不能修改,A 选项正确;B 选项中,虽然可以为 String 对象赋值,但实际上是创建了一个新的 String 对象,而不是修改原对象的内容,B 选项错误;String 对象的 equals(Object obj) 方法比较的是对象的内容,C 选项正确;String 对象的 hashCode() 方法返回的是根据对象内容计算出的哈希值,而不是内存地址,D 选项错误。
2. 对于 String 类的 charAt(int index) 方法,以下说法正确的是( )。
A. 如果指定的索引超出范围,会返回空字符
B. 如果指定的索引错误,会抛出 NullPointerException
C. 如果指定的索引超出范围,会抛出 StringIndexOutOfBoundsException
D. 该方法总是返回字符串中的第一个字符
答案:C
解析:String 类的 charAt(int index) 方法用于返回字符串中指定索引处的字符,如果指定的索引超出范围,会抛出 StringIndexOutOfBoundsException,C 选项正确。
3. 在使用 String 类的 indexOf(String str) 方法时,如果字符串中不包含该子字符串,会返回( )。
A. 0
B. -1
C. 子字符串的长度
D. 子字符串在字符串中最后出现的索引
答案:B
解析:如果字符串中不包含该子字符串,indexOf(String str) 方法会返回 -1,B 选项正确。
4. 下列关于 StringBuffer 类的 append(String str) 方法的说法中,正确的是( )。
A. 该方法会创建一个新的 StringBuffer 对象
B. 该方法会返回一个新的 String 对象
C. 该方法会改变调用它的 StringBuffer 对象的内容
D. 该方法只能追加字符串常量,不能追加字符串变量
答案:C
解析:StringBuffer 类的 append(String str) 方法用于将指定的字符串 str 追加到 StringBuffer 对象的末尾,会改变 StringBuffer 对象的内容,C 选项正确。
5. 对于 StringBuffer 类的 insert(int offset, String str) 方法,以下说法错误的是( )。
A. 可以在指定位置插入字符串
B. 如果指定的位置超出了当前字符串的长度,会抛出 StringIndexOutOfBoundsException
C. 插入后会改变原 StringBuffer 对象的内容
D. 可以在字符串的开头插入字符串
答案:B
解析:如果指定的位置超出了当前字符串的长度,insert(int offset, String str) 方法会自动扩展字符串的长度,而不会抛出 StringIndexOutOfBoundsException,B 选项错误。
6. 下列关于 StringBuffer 类的 toString() 方法的说法中,正确的是( )。
A. 该方法会创建一个新的 String 对象,并将 StringBuffer 对象的内容复制到新对象中
B. 该方法会直接修改原 StringBuffer 对象的内容
C. 该方法会返回原 StringBuffer 对象的引用
D. 该方法只能在 StringBuffer 对象为空时使用
答案:A
解析:StringBuffer 类的 toString() 方法用于将 StringBuffer 对象转换为其对应的 String 对象,会创建一个新的 String 对象,并将 StringBuffer 对象的内容复制到新对象中,A 选项正确。
7. 关于 package 的说法,正确的是( )。
A. package 关键字可以在类定义的任意位置使用
B. 包名之间可以用“_”隔开
C. 在定义 package 时,包名可以部分大写
D. package 用于组织类和接口,避免命名冲突
答案:D
解析:package 一定要在整个类定义的第一行,A 选项错误;包名之间一定要用“.”隔开,B 选项错误;在定义 package 的时候,包名全部要小写,C 选项错误;package 用于组织类和接口,避免命名冲突,D 选项正确。
8. 关于 import 语句的说法,错误的是( )。
A. 如果代码中有 package 关键字,则 import 关键字应该在 package 关键字定义的后面
B. import 语句可以导入其他包中的类、接口和枚举
C. import 关键字的简写形式“import java.util.*;”可以导入 java.util 包下的所有类和接口,但不包括枚举
D. 如果在代码中想引用不在同一个目录的其他 Java 类,则必须使用 import 关键字
答案:C
解析:import 关键字的简写形式“import java.util.*;”可以导入 java.util 包下的所有类、接口和枚举,C 选项错误。
9. 下列代码中,创建 StringBuffer 对象的方式正确的是( )。
A. StringBuffer sb = new StringBuffer(10);
B. StringBuffer sb = new StringBuffer("Hello", 20);
C. StringBuffer sb = "Hello";
D. StringBuffer sb = new String("Hello");
答案:A
解析:A 选项使用带容量的构造方法创建 StringBuffer 对象,是正确的;B 选项的构造方法不存在;C 选项的赋值方式错误,应该使用 new 关键字创建;D 选项创建的是 String 对象,而不是 StringBuffer 对象。
10. 对于 String 类的 substring(int start, int end) 方法,以下说法正确的是( )。
A. 包括起始索引处的字符,但不包括结束索引处的字符
B. 包括起始索引处的字符,也包括结束索引处的字符
C. 不包括起始索引处的字符,但包括结束索引处的字符
D. 不包括起始索引处的字符,也不包括结束索引处的字符
答案:A
解析:String 类的 substring(int start, int end) 方法用于提取字符串中介于两个指定索引之间的子字符串,包括起始索引处的字符,但不包括结束索引处的字符,A 选项正确。
二、填空题
1. Java 中的( )对象是不可变的。
答案:不可变String
2. String 类的( )方法用于获取字符串的长度。
答案:length()
3. StringBuffer 类的( )方法用于将指定的字符串 str 追加到 StringBuffer 对象的末尾。
答案:append(String str)
4. 创建 StringBuffer 对象可以通过无参构造方法的构造方法来实现,其初始容量默认为( )个字符。
答案:16
5. 在 Java 中,package 一定要在整个类定义的( )。
答案:第一行
三、判断题
1. String 类在 java.lang 包中定义。( )
答案:正确
解析:String 类在 java.lang 包中定义,不需要导入就可以直接使用。
2. 字符串常量是位于一对单引号之间的字符序列。( )
答案:错误
解析:字符串常量是位于一对双引号之间的字符序列。
3. String 对象是可变的。( )
答案:错误
解析:Java 中的 String 对象是不可变的,一旦创建就不能更改其包含的字符序列。
4. 可以通过更改 String 对象包含的字符序列来修改字符串。( )
答案:错误
解析:String 对象是不可变的,不能通过更改其包含的字符序列来修改字符串。
5. String 类的 charAt(int index) 方法用于返回字符串中指定索引处的字符。( )
答案:正确
解析:charAt(int index) 方法用于返回字符串中指定索引处的字符,索引从 0 开始。
6. String 类的 indexOf(String str) 方法用于返回指定子字符串在字符串中最后一次出现的索引。( )
答案:错误
解析:indexOf(String str) 方法用于返回指定子字符串在字符串中第一次出现的索引,如果字符串中不包含该子字符串,则返回 -1。
7. StringBuffer 类的对象是不可变的。( )
答案:错误
解析:StringBuffer 类是一个可变的字符序列,其对象可以被修改。
8. StringBuffer 类的 append(String str) 方法会返回一个新的 StringBuffer 对象。( )
答案:错误
解析:append(String str) 方法会将指定的字符串 str 追加到 StringBuffer 对象的末尾,并返回调用它的 StringBuffer 对象的引用。
9. package 关键字可以在类定义的任意位置使用。( )
答案:错误
解析:package 一定要在整个类定义的第一行。
10. import 语句可以导入其他包中的类、接口和枚举。( )
答案:正确
解析:import 语句用于导入其他包中的类、接口和枚举,以便在代码中直接使用这些类型,而不需要完整地指定它们的完全限定名。
四、编程题
1. 编写一个程序,计算字符串中某个字符出现的次数。
答案:
public class CharacterCount {
public static void main(String[] args) {
String str = "Hello World";
char target = 'l';
int count = countCharacter(str, target);
System.out.println("字符 '" + target + "' 在字符串中出现的次数为:" + count);
}
public static int countCharacter(String str, char target) {
int count = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == target) {
count++;
}
}
return count;
}
}
2. 写一个程序,判断两个字符串是否相等。
答案:
public class StringEquality {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "Hello";
boolean isEqual = areStringsEqual(str1, str2);
System.out.println("两个字符串是否相等:" + isEqual);
}
public static boolean areStringsEqual(String str1, String str2) {
return str1.equals(str2);
}
}
3. 编写一个程序,将字符串中的所有小写字母转换为大写字母。
答案:
public class ToUpperCase {
public static void main(String[] args) {
String str = "hello world";
String result = convertToUpperCase(str);
System.out.println("转换后的字符串为:" + result);
}
public static String convertToUpperCase(String str) {
StringBuilder result = new StringBuilder();
for (char c : str.toCharArray()) {
if (Character.isLowerCase(c)) {
result.append(Character.toUpperCase(c));
} else {
result.append(c);
}
}
return result.toString();
}
}
4. 编写一个程序,使用 StringBuffer 类实现字符串的反转。
答案:
public class StringReverse {
public static void main(String[] args) {
String str = "Hello World";
String reversed = reverseString(str);
System.out.println("反转后的字符串为:" + reversed);
}
public static String reverseString(String str) {
StringBuffer sb = new StringBuffer(str);
return sb.reverse().toString();
}
}
5. 编写一个程序,使用 split 方法将字符串按照空格分割成数组。
答案:
public class StringSplit {
public static void main(String[] args) {
String str = "Hello World Java";
String[] words = splitString(str);
for (String word : words) {
System.out.println(word);
}
}
public static String[] splitString(String str) {
return str.split(" ");
}
}
学科网(北京)股份有限公司
$$
数组、字符串、包(二)
一、选择题
1. 下列关于 String 对象的说法中,错误的是( )。
A. String 对象的内容一旦创建就不能修改
B. String 对象可以通过赋值一个字符串变量或表达式来改变其内容
C. String 对象的 equals(Object obj) 方法比较的是对象的内容
D. String 对象的 hashCode() 方法返回的是对象的内存地址
2. 对于 String 类的 charAt(int index) 方法,以下说法正确的是( )。
A. 如果指定的索引超出范围,会返回空字符
B. 如果指定的索引错误,会抛出 NullPointerException
C. 如果指定的索引超出范围,会抛出 StringIndexOutOfBoundsException
D. 该方法总是返回字符串中的第一个字符
3. 在使用 String 类的 indexOf(String str) 方法时,如果字符串中不包含该子字符串,会返回( )。
A. 0
B. -1
C. 子字符串的长度
D. 子字符串在字符串中最后出现的索引
4. 下列关于 StringBuffer 类的 append(String str) 方法的说法中,正确的是( )。
A. 该方法会创建一个新的 StringBuffer 对象
B. 该方法会返回一个新的 String 对象
C. 该方法会改变调用它的 StringBuffer 对象的内容
D. 该方法只能追加字符串常量,不能追加字符串变量
5. 对于 StringBuffer 类的 insert(int offset, String str) 方法,以下说法错误的是( )。
A. 可以在指定位置插入字符串
B. 如果指定的位置超出了当前字符串的长度,会抛出 StringIndexOutOfBoundsException
C. 插入后会改变原 StringBuffer 对象的内容
D. 可以在字符串的开头插入字符串
6. 下列关于 StringBuffer 类的 toString() 方法的说法中,正确的是( )。
A. 该方法会创建一个新的 String 对象,并将 StringBuffer 对象的内容复制到新对象中
B. 该方法会直接修改原 StringBuffer 对象的内容
C. 该方法会返回原 StringBuffer 对象的引用
D. 该方法只能在 StringBuffer 对象为空时使用
7. 关于 package 的说法,正确的是( )。
A. package 关键字可以在类定义的任意位置使用
B. 包名之间可以用“_”隔开
C. 在定义 package 时,包名可以部分大写
D. package 用于组织类和接口,避免命名冲突
8. 关于 import 语句的说法,错误的是( )。
A. 如果代码中有 package 关键字,则 import 关键字应该在 package 关键字定义的后面
B. import 语句可以导入其他包中的类、接口和枚举
C. import 关键字的简写形式“import java.util.*;”可以导入 java.util 包下的所有类和接口,但不包括枚举
D. 如果在代码中想引用不在同一个目录的其他 Java 类,则必须使用 import 关键字
9. 下列代码中,创建 StringBuffer 对象的方式正确的是( )。
A. StringBuffer sb = new StringBuffer(10);
B. StringBuffer sb = new StringBuffer("Hello", 20);
C. StringBuffer sb = "Hello";
D. StringBuffer sb = new String("Hello");
10. 对于 String 类的 substring(int start, int end) 方法,以下说法正确的是( )。
A. 包括起始索引处的字符,但不包括结束索引处的字符
B. 包括起始索引处的字符,也包括结束索引处的字符
C. 不包括起始索引处的字符,但包括结束索引处的字符
D. 不包括起始索引处的字符,也不包括结束索引处的字符
二、填空题
1. Java 中的( )对象是不可变的。
2. String 类的( )方法用于获取字符串的长度。
3. StringBuffer 类的( )方法用于将指定的字符串 str 追加到 StringBuffer 对象的末尾。
4. 创建 StringBuffer 对象可以通过无参构造方法的构造方法来实现,其初始容量默认为( )个字符。
5. 在 Java 中,package 一定要在整个类定义的( )。
三、判断题
1. String 类在 java.lang 包中定义。( )
2. 字符串常量是位于一对单引号之间的字符序列。( )
3. String 对象是可变的。( )
4. 可以通过更改 String 对象包含的字符序列来修改字符串。( )
5. String 类的 charAt(int index) 方法用于返回字符串中指定索引处的字符。( )
6. String 类的 indexOf(String str) 方法用于返回指定子字符串在字符串中最后一次出现的索引。( )
7. StringBuffer 类的对象是不可变的。( )
8. StringBuffer 类的 append(String str) 方法会返回一个新的 StringBuffer 对象。( )
9. package 关键字可以在类定义的任意位置使用。( )
10. import 语句可以导入其他包中的类、接口和枚举。( )
四、编程题
1. 编写一个程序,计算字符串中某个字符出现的次数。
2. 写一个程序,判断两个字符串是否相等。
3. 编写一个程序,将字符串中的所有小写字母转换为大写字母。
4. 编写一个程序,使用 StringBuffer 类实现字符串的反转。
5. 编写一个程序,使用 split 方法将字符串按照空格分割成数组。
学科网(北京)股份有限公司
$$