String相关习题 一、选择题 第1题 1.观察下列代码,求最终结果(C)
1 2 3 4 5 6 String str1 = "Abc" ; if (str1.equals("abc" )){ System.out.println("爱Java,爱生活~" ); } else { System.out.println("爱生活,爱Java~" ); }
A:什么也没有输出
B:爱Java,爱生活~
C:爱生活,爱Java~
D:运行报错
第2题 2.观察下列代码,选出标号1和2的正确答案(AC)【多选题】
1 2 3 4 5 6 7 8 9 char [] chs = {'h' ,'e' ,'l' ,'l' ,'o' };String s1 = new String(chs); String s2 = new String(chs); String s3 = "hello" ; String s4 = "hello" ; System.out.println((s1==s2)+"," +(s1==s3)+"," +(s3==s4)); System.out.println((s1.equals(s2))+"," +(s1.equals(s3))+"," +(s3.equals(s4)));
A:fase,fase,true
B:false,false,false
C:true,true,true
D:true,true,false
第3题 3.观察下列代码,选出标号1和2的正确答案(CB)【多选题】
1 2 3 4 5 6 7 8 9 10 11 12 public static void main (String[] args) { String s1 = "abc" ; String s2 = "abc" ; String s3 = "ABC" ; String s4 = "a" ; String s5 = s4 + "bc" ; String s6 = "a" + "bc" ; System.out.println(s1.equals(s2)+" " +s1.equalsIgnoreCase(s3)+" " +s2.equals(s5)+" " +s3.equalsIgnoreCase(s5)); System.out.println((s1==s2)+" " +(s1==s3)+" " +(s2==s5)+" " +(s2==s6)); }
A: true false true true
B: true false false true
C: true true true true
D: true true true false
第4题 4.以下哪个选项可以获取字符串对象的长度(B)
A:public int length
B:public int length(){ … }
C:public int size(){ … }
D:public char charAt(int index){ … }
第5题 5.以下代码反转字符串逻辑正确的是( C )
A:
1 2 3 4 5 String s = "12345" ; for (int i = s.length(); i >= 0 ; i--) { s+= s.charAt(i); } System.out.println(s);
B:
1 2 3 4 5 String s = "12345" ; for (int i = s.length()-1 ; i >= 0 ; i--) { s+= s.charAt(i); } System.out.println(s);
C:
1 2 3 4 5 6 7 String s = "12345" ; String s2 = "" ; for (int i = s.length()-1 ; i >= 0 ; i--) { s2+= s.charAt(i); } s = s2; System.out.println(s);
D:
1 2 3 4 5 6 7 String s = "12345" ; String s2 = "" ; for (int i = 0 ; i < s.length(); i++) { s2+= s.charAt(i); } s = s2; System.out.println(s);
第6题 6.下面关于 String 的描述不正确的是(BD)【多选题】
A、equals()方法比较的是两个字符串的内容
B.、equals()方法比较的是两个字符串的地址和内容
C、charAt()返回的是指定的索引处的 char 值
D、length 属性代表的是字符串的长度
字符串的.length()是方法,不是属性
二、编程题 第1题 1 2 3 4 请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。 例如:"abcba" 、"上海自来水来自海上" 均为对称字符串。
第2题 1 2 请编写程序,由键盘录入一个字符串,统计字符串中英文字母和数字分别有多少个。 比如:Hello12345World中字母:10 个,数字:5 个。
第3题 1 2 3 4 5 6 7 8 9 10 11 请编写程序,由键盘录入一个字符串,把字符串中的所有字母都变成大写后输出,再把字符串中的所有字母变成小写后输出。 比如: 键盘录入字符串:Hello12345World~!#$ 控制台输出: 转换后的大写字符串: HELLO12345WORLD~!#$ 转换后的小写字符串: hello12345world~!#$ 要求: 1. 定义方法myToUpperCase,完成把方法参数字符串转换成大写字符串并返回转换后的结果 2. 定义方法myToLowerCase,完成把方法参数字符串转换成小写字符串并返回转换后的结果 3. 获取键盘录入的字符串后,分别调用以上两个方法,获取结果字符串并输出
ArrayList相关习题 三、选择题(4分/题) 第1题 1.下列有关数组和集合说法,错误的选项为 ( A )
A:数组和集合的长度都是可变的
B:数组的长度固定, 集合的长度可变
C:数组可以存储基本类型和引用类型数据
D: 集合中存储的是引用数据类型
第2题 2.关于集合说法错误的是( C )
A: ArrayList的底层数据结构是数组
B: ArrayList可以存储重复的元素
C: ArrayList的删除方法是delete()
D: ArrayList获取长度度的方法是size()
第3题 3.下列创建 ArrayList 对象错误的是:( 无 )
A:
1 ArrayList list1 = new ArrayList();
B:
1 ArrayList list = new ArrayList();
C:
1 ArrayList list2 = new ArrayList();
D:
1 ArrayList list3 = new ArrayList();
第4题 4.下面代码横线处根据输出要求应该填写的代码是( C )
1 2 3 4 5 6 7 8 9 10 11 public static void main (String[] args) { ArrayList list = new ArrayList<>(); list.add("php" ); list.add("itcast" ); list.add("heima" ); list.add("baima" ); list.add("java" ); System.out.println("集合当中的元素个数有:" + _________); System.out.println("获取集合中的元素heima:" + _________); System.out.println("删除集合中的元素php:" + _________); }
A: ①list.size(5) ②list.get(1) ③list.remove(0)
B: ①list.length() ②list.get(2) ③list.remove(0)
C: ①list.size() ②list.get(2) ③list.remove(0)
D: ①list.size() ②list.get(3) ③list.remove(1)
第5题 5.下列代码的运行结果是( C )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public static void main (String[] args) { ArrayList list = new ArrayList<>(); list.add("PHP" ); list.add("Android" ); list.add("iOS" ); list.add("Java" ); ArrayList newList = method(list); System.out.println(newList); } public static ArrayList method (ArrayList list) { ArrayList array = new ArrayList<>(); for (int i=0 ;i String str = list.get(i); if (str.equals("Java" )){ array.add("得Java者,得天下~" ); } } return array; }
A: [PHP,Android,iOS,Java]
B: [得Java者,得天下~]
C: [PHP,Android,iOS,Java,得Java者,得天下~]
D: [PHP,Android,iOS,得Java者,得天下~]
第6题 6.下列代码的运行结果是( C )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public static void main (String[] args) { ArrayList list = new ArrayList(); list.add(100 ); list.add(200 ); list.add(300 ); ArrayList newList = changeList(list); for (int i = 0 ; i < newList.size(); i++) { System.out.print(newList.get(i)+" " ); } } public static ArrayList changeList (ArrayList arr) { for (int i = 0 ; i < 3 ; i++) { arr.add(666 ); } return arr; }
A: 100 200 300
B: 666 666 666
C: 100 200 300 666 666 666
D: 666 666 666 100 200 300
第7题 7.ArrayList 的初始化内容如下:( B )
1 2 3 4 5 6 ArrayList list = new ArrayList<>(); list.add("a" ); list.add("b" ); list.add("c" ); list.add("b" ); list.add("b" );
下面可以删除 list 集合中所有的”b”的代码是
A:
1 2 3 4 5 for (int i = 0 ; i < list.size (); i++) { if (list.get (i).equals ("b" )){ list.remove (i); } }
B:
1 2 3 4 5 for (int i = list.size ()-1 ; i > 0 ; i--) { if (list.get (i).equals ("b" )) { list.remove (i); } }
C:
D:
1 以上的代码都不能成功删除 list 集合中所有的”b”;
第8题 8.以下代码的打印结果为( D )
1 2 3 4 5 6 7 8 9 10 11 public static void main (String[] args) { ArrayList list = new ArrayList<>(); list.add("123" ); list.add("456" ); list.add("1" ); for (int i = 0 ;i if (list.get(i) .length () >1) { list.remove(i); } } System.out.println(list); }
A: [123,456, 1]
B: [456]
C: [1]
D: [456, 1]
第9题 9.代码如下,完成两个需求:1.求出集合的长度,2.删除集合list中的字符串“orange”。下面选项中代码正确的是( B )
1 2 3 4 5 6 public static void main (String[] args) { ArrayList list = new ArrayList<>(); list.add("apple" ); list.add("banana" ); list.add("orange" ); }
A:
1 2 3 4 int count = list.size();list.remove(3 );
B:
1 2 3 4 int count = list.size();list.remove(2 );
C:
1 2 3 4 int count = list.length();list.remove(2 );
D:
1 2 3 4 int count = list.length();list.remove(3 );
第10题 10.以下代码的打印结果为( D )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public static void main (String[] args) { ArrayList list = new ArrayList<>(); list.add(10 ); list.add(20 ); list.add(30 ); changeList(list); for (int i = 0 ; i < list.size(); i++) { int num = list.get(i); System.out.print(num+" " ); } } public static void changeList (ArrayList list) { for (int i = 0 ; i < 3 ; i++) { int num = list.get(i); num *= 10 ; list.set(i, num); } }
A: ArrayList集合不能存储基本类型,编译报错
B: 10 20 30
C: 0 0 0
D: 100 200 300
四、编程题 第1题 1 2 3 4 5 6 7 1. 设计一个汽车Car类,私有成员变量:brand(品牌),color(颜色),int (价格),并生成相应的get/set方法,空参/满参构造。2. 定义测试类,在main方法中完成以下要求:2.1 创建三个Car对象,分别为” 宝马”,”黑色”,500000 ;”奔驰”,”红色”,300000 ; ”奥迪”,”红色”,200000 ;2.2 将以上3 个对象添加到ArrayList集合对象中2.3 遍历集合,将颜色为“红色”的汽车按照如下格式打印到控制台上。 奔驰-红色-300000 奥迪-红色-200000
第2题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1. 定义一个 Person 类 (1 )属性: 编号 id ( int 类型 ) 姓名 name(String 类型) 性别 sex (String 类型) (2 )要求: 成员变量private 修饰 生成空参构造/满参构造 生成set/get方法 2. 在测试类中创建 6 个对象(对象数据如下),依次将 Person 对象存入ArrayList集合对象中。 1 ,"尼古拉斯" ,"男" 2 ,"马尔扎哈" ,"男" 3 ,"迪丽热巴" ,"女" 4 ,"阿凡提买买提" ,"男" 5 ,"王宝强" ,"男" 6 ,"柳岩" ,"女" 3. 遍历集合删除其中性别为男且姓名长度大于等于 3 的元素,将剩余的元素数据打印在控制台。 打印如下: id:3 性别:女 姓名:迪丽热巴 id:6 性别:女 姓名:柳岩
第3题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1. 定义"程序员" 类,Coder,包含以下成员: 1.1 成员属性: name (姓名):String类型, age (年龄):int 类型, like (爱好):String类型 1.2 要求: 成员变量private 修饰 生成空参构造/满参构造 生成set/get方法 2. 定义类Test,类中定义main()⽅法,按以下要求编写代码: 2.1 分别创建四个Coder对象,四个对象的属性分别为: "王宝强" ,25 ,”打篮球”、 "汪峰" ,35 ,”游泳”、 "李铁" ,19 ,”踢足球”、 "姚明" ,18 ,”击剑”; 2.2 创建一个ArrayList集合,这个集合里面存储的是Coder类型,分别将上面的四个Coder对象添加到集合中 2.3 遍历这个集合,在遍历的过程中,如果集合中对象的年龄大于30 ,那么将这个对象的爱好改成”打保龄球”, 如果对象的年龄小于20 , 那么就把这个对象删除。 2.4 正确修改和删除对象后,遍历集合,打印集合里所有对象的所有属性信息到控制台。 2.5 输出格式: 王宝强----25 ----打篮球 汪峰----35 ----打保龄球