一、单项选择题
1.下面代码将创建( )个对象。
String s1 = new String("computer");
String s2 = new String("computer");
A.0 B.1
C.2 D.3
2.(*)已知StringBuffersb = new StringBuffer("abc"),则sb.reverse()后sb
的值为( )。
A.abc B.acb
C.cba D.cab
3.已知StringBuffersb = new StringBuffer("abcde"),则sb.delete(1,2)后sb
值为( )。
A.abc B.abde
C.acde D.ade
4.由"a".compareTo("b")得到的数值( )。
A.> 0 B.= 0
C.< 0 D.不确定
5.已知String s =" good night ",则s.trim()的值为( )。
A."good night" B."good night"
C."good night " D."goodnight"
6.(*)已知String s = "onetwothree",则s.substring(1 ,4)的值为( )。
A.one B.net
C.netw D.two
7.调用下面哪个方法时会改变原有对象?( )
A.String的trim() B.String的length()
C.StringBuffer的reverse() D.StringBuffer的length()
8.假设String s = "Niceto meet you",则下面返回"to" 的语句为( )。
A.s.substring(6,8); B.s.substring(5,9);
C.s.substring(5,7); D.s.substring(6,7);
9.以下程序段执行的结果为( )。
String s1 ,s2;
s1 = new String("Goodholiday.");
s2 = new String("Goodholiday.");
System.out.print(s1.equals(s2));
System.out.println(s1 == s2);
A.truefalse B.truetrue
C.falsetrue D.falsefalse
10.分析下面的代码,其输出结果是( )。
public class Test3 {
public static voidmain(String[] args) {
Stringfoo = "blue";
String bar = foo;
foo= "green";
System.out.println(bar);
}
}
A. 一个异常抛出 B. blue
C. null D. green
11.(*)下面代码执行后,正确的输出结果是( )。
String s1 = "You arehired!";
System.out.println(s1.replace(’h’,’f’));
System.out.println(s1);
A. You are fired!
You are hired!
B. You are fired!
You are fired!
C. You are hired!
Youare hired!
D. You are hired!
Youare fired!
二、简答题
简述String 和StringBuffer的区别。
三、编程题
1.从键盘输入一个带绝对路径的文件全名(如:d:\first\Hello.java),判断是否为存放在d盘上的java源程序文件。
2.有三个字符串,编写程序找出其中最大者。
3. 设定5个字符串,要求只打印那些以字母“b”开头的串,编写程序完成。
4.从键盘输入2个字符串,判断内容是否相同。如果不相同,从小到大输出两个字符串。
5.(*)从键盘输入一个字符串,使用String类的charAt方法判断是否回文,并
输出结果。
6.从键盘输入一句英文,统计字符串所包含的单词数,并逐个分行输出每个单词。
7.5 精选习题参考答案
一、单项选择题
1.C 2.C 3.C 4.C 5.A 6.B
7.A 8.C 9.A 10.B 11.A
二、简答题
Java平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。String类提供了值不可改变的字符串,而StringBuffer类提供的字符串可以进行修改。当字符串数据需要改变的时候就可以使用StringBuffer来动态构造字符数据。
三、编程题
1.
importjava.util.Scanner;
class TestJavaFile{
public static void main(String[] args) {
System.out.println("请输入一个带绝对路径的文件全名字符串:");
Scanner reader = new Scanner(System.in);
String s = reader.nextLine();
if (s.startsWith("d:")&& s.endsWith(".java")) {
System.out.println("是存放在d盘上的java源程序文件。");
} else {
System.out.println("不是存放在d盘上的java源程序文件。");
}
}
}
程序的输出结果:
(1)请输入一个带绝对路径的文件全名字符串:
C:\a.txt
不是存放在d盘上的java源程序文件。
(2)请输入一个带绝对路径的文件全名字符串:
d:\test\Hello.java
是存放在d盘上的java源程序文件。
2.
class Max {
public static void main(String args[]) {
String s1 = "Hello Java";
String s2 = "Java Applet";
String s3 = "Java";
String s;
if (s1.compareTo(s2) < 0)
s = s2;
else
s = s1;
if (s.compareTo(s3) < 0)
s = s3;
System.out.println("big = " +s);
}
}
程序的输出结果:
big = Java Applet
3.
class StartWithB{
public static void main(String args[]) {
String s1 = "hello";
String s2 = "bee";
String s3 = "java";
String s4 = "brove";
String s5 = "bag";
prt(s1);
prt(s2);
prt(s3);
prt(s4);
prt(s5);
}
public static void prt(String t) {
if (t.indexOf('b') == 0)
System.out.println(t);
}
}
程序的输出结果:
bee
brove
bag
4.
import java.util.Scanner;
class TestEquals {
public static void main(String[] args) {
System.out.println("请输入2个字符串:");
Scanner reader = new Scanner(System.in);
String s1 = reader.nextLine();
String s2 = reader.nextLine();
boolean flg = s1.equals(s2);
if (flg) {
System.out.println("两个字符串内容相同。");
} else {
int i = s1.compareTo(s2);
System.out.println("两个字符串内容不同,从小到大依次为:");
if (i > 0) {
System.out.print(s2 +"," + s1);
} else {
System.out.print(s1 +"," + s2);
}
}
}
}
程序的输出结果:
(1)请输入2个字符串:
java
c++
两个字符串内容不同,从小到大依次为:
c++,java
(2)请输入2个字符串:
hello
hello
两个字符串内容相同。
5.
importjava.util.Scanner;
class Palindrome {
public static void main(String[] args) {
System.out.println("请输入一个非空的字符串:");
Scanner reader = new Scanner(System.in);
String s = reader.nextLine();
if ("".equals(s)) {
System.out.println("您输入的是空字符串。");
} else {
boolean flg = true;
for (int i = 0; i <= s.length() /2; i++) {
if (s.charAt(i) !=s.charAt(s.length() - 1 - i)) {
flg = false;
break;
}
}
if (flg) {
System.out.println("您输入的字符串是回文。");
} else {
System.out.println("您输入的字符串不是回文。");
}
}
}
}
程序的输出结果:
(1)请输入一个非空的字符串:
java
您输入的字符串不是回文。
(2)请输入一个非空的字符串:
abcba
您输入的字符串是回文。
6.
importjava.util.Scanner;
importjava.util.StringTokenizer;
class TestTokenizer{
public static void main(String[] args) {
System.out.println("请输入一个字符串:");
Scanner reader = new Scanner(System.in);
String s = reader.nextLine();
StringTokenizer fenxi = newStringTokenizer(s, " ,");
int number = fenxi.countTokens();
System.out.println("字符串包含的单词数:"+ number + "个");
while (fenxi.hasMoreTokens()) {
String str = fenxi.nextToken();
System.out.println(str);
}
}
}
程序的输出结果:
请输入一个字符串:
I love java
字符串包含的单词数:3个
I
love
java