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";
//1
System.out.println((s1==s2)+","+(s1==s3)+","+(s3==s4));
//2
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";
//1
System.out.println(s1.equals(s2)+" "+s1.equalsIgnoreCase(s3)+" "+s2.equals(s5)+" "+s3.equalsIgnoreCase(s5));
//2
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""上海自来水来自海上"均为对称字符串。

1
2
3
4
5
/*
需求:
请定义一个方法用于判断一个字符串是否是对称的字符串,并在主方法中测试方法。
例如:"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:

1
list.remove ("b");

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
//1.求出集合的长度
int count = list.size();
//2.删除集合list中的字符串“orange”
list.remove(3);

B:

1
2
3
4
//1.求出集合的长度
int count = list.size();
//2.删除集合list中的字符串“orange”
list.remove(2);

C:

1
2
3
4
//1.求出集合的长度
int count = list.length();
//2.删除集合list中的字符串“orange”
list.remove(2);

D:

1
2
3
4
//1.求出集合的长度
int count = list.length();
//2.删除集合list中的字符串“orange”
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----打保龄球