1.不是。
2.4和3。.length()返回字符串的长度,第二个字符串时由三个转义字符构成的。
3.false和true。String对象调用equals(String s)方法比较当前String对象的字符序列是否与参数s指定的String对象的字符序列相同,是区分大小写的,所以第一个为false。
4.负数。String对象调用compareTo(String s)方法,按字典序与指定的String对象s的字符序列比较大小。如果当前String对象的字符序列与s的相同,该方法返回0;如果大于s的字符序列,该方法返回正值,如果小于s的字符序列,该方法返回负值。
5.是true。
String对象调用contains方法判断当前String对象的字符序列是否包含参数s的字符序列
6.3和-1
String 对象的字符序列索引位置从0开始。String对象调用方法indexOf(String str)从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是-1。
7.会发生NumberFormatException异常,因为字符序列是浮点格式的,不能用int转换.
(1)下列哪个叙述是正确的?
A.String 类是final类,不可以有子类。
B.String类在java.util包中。
C.“abc”=="abc"的值是false。
D.“abc”.equals(“Abc”)的值是true。
(2)下列哪个表达式是正确的(无编译错误)?
A.int m=Float.parseFloat(“567”);
B. int m = Short.parseShort(“567”);
C.byte m = Integer.parseInt(“2”);
D.float m = Float.parseDouble(“2.9”);
(3)对于如下代码,下列哪个叙述是正确的?
A.程序编译出现错误。
B.程序标注的【代码】的输出结果是bird。
C.程序标注的【代码】的输出结果是fly。
D.程序标注的【代码】的输出结果是null。
Java
public class E{
public static void main(String [] args){
String strOne="bird";
String strTwo = strOne;
strOne="fly";
System.out.println(strTwo);//【代码】
}
}
(4)对于下列代码,下列哪个叙述是正确的?
A.程序出现编译错误。
B.无编译错误,在命令行执行程序"Java E I love this game",程序输出this。
C.无编译错误,在命令行执行程序"Java E let us go",程序无运行异常。
D.无编译错误,在命令行执行程序"Java E 0 1 2 3 4 5 6 7 8 9",程序输出3。
Java
public class E{
public static void main(String args[]){
String s1=args[1];
String s2 = args[2];
String s3=args[3];
System.out.println(s3);
}
}
(5)下列哪个叙述是错误的?
A.“9dog”.matches("\ddog")的值是true。
B.“12hello567”.replaceAll("[123456789]+","@")返回的字符串是@hello@。
C. new Date(1000)对象含有的时间是公元后1000小时的时间。
D."\hello\n"是正确的字符串常量。
1.A
String类在java.lang包中;“abc”==“abc"的值是true,字符常量存储在常量池中,他们的引用是相同的;而"abc”.equals(“Abc”)的值是false,区分大小写的。
2.B
parseXXX(String s)方法是将由“数字”字符组成的字符序列转化成对应的数据类型。
A中不能将float类型赋值给int
C中不能讲int赋值给byte
D中Float类不存在parseDouble方法
3.B
String常量是对象,因此可以把String常量的引用赋值给一个String对象。strOne和strTwo是用户声明的String对象,strOne的值是可以被改变的,如果再进行strOne="fly"运算,那么strOne中的值将发生变化。
strTwo的=strOne就将strOne指向的常量池对象bird赋值给了strTwo。
4.D
B选项输出的实际是game,因为下标从0开始;
C选项发生数组下标越界异常,因为并没有给arg[3]赋值;
5.C
String对象调用public boolean matches(String regex)方法可以判断当前String对象的字符序列是否和参数regex指定的正则表达式匹配。\d代表0-9中的任何一个数字。所以A选项是匹配的。
replaceAll(String regex,String replacement)方法返回一个新的String对象,把当前String对象的字符序列中所有和参数regex匹配的子字符序列,用参数replacement的字符序列替换后得到字符序列。
B选项中将1-9数字序列替换为@,返回的字符串就是@hello@。
C选项1000表示公元后1000毫秒的时间,公元时间是1970-01-01 0时。
(1)请说出E类中标注的【代码】的输出结果
Java
public class E {
public static void main(String args[]) {
String str = new String("苹果");
modify(str);
System.out.println(str);// 【代码】
}
public static void modify(String s) {
s = s + "好吃";
}
}
(2)请说出E类中标注的【代码】的输出结果。
Java
import java.util.StringTokenizer;
class GetToken {
String s[];
public String getToken(int index, String str) {
StringTokenizer fenxi = new StringTokenizer(str);
int number = fenxi.countTokens();
s = new String[number + 1];
int k = 1;
while (fenxi.hasMoreTokens()) {
String temp = fenxi.nextToken();
s[k] = temp;
k++;
}
if (index <= number) {
return s[index];
} else
return null;
}
}
public class E {
public static void main(String args[]) {
String str = "We Love This Game";
GetToken token = new GetToken();
String s1 = token.getToken(2, str);
String s2 = token.getToken(4, str);
System.out.println(s1 + ":" + s2);//【代码】
}
}
(3)请说出E类中标注的【代码1】和【代码2】的输出结果
Java
public class E {
public static void main(String args[]) {
byte d[] = "abc我们喜欢篮球".getBytes();
System.out.println(d.length);//【代码1】
String s = new String(d, 0, 7);
System.out.println(s);//【代码2】
}
}
(4)请说出E类中标注的【代码】的输出结果。
Java
class MyString {
public String getString(String s) {
StringBuffer str = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
if (i % 2 == 0) {
char c = s.charAt(i);
str.append(c);
}
}
return new String(str);
}
}
public class E {
public static void main(String args[]) {
String s = "1234567890";
MyString ms = new MyString();
System.out.println(ms.getString(s));//【代码】
}
}
(5)请说出E类中标注的【代码】的输出结果
Java
public class E {
public static void main(String args[]) {
String regex = "\\djava\\w{1,}";
String str1 = "88javaookk";
String str2 = "9javaHello";
if (str1.matches(regex)) {
System.out.println(str1);
}
if (str2.matches(regex)) {
System.out.println(str2);//【代码】
}
}
}
1.苹果。
String对象的字符序列是不可修改的,也就是说,String对象的字符序列的字符不能被修改、删除,即String对象的实体是不可以再发生变化的。
2.Love:Game
这道题考察StringTokenizer类使用,该类用于分解String对象的字符序列。首先调用getToken方法传入2和str字符串,StringTokenizer fenxi = new StringTokenizer(str);
为String对象str构造一个分析器,使用默认的分隔标记,即空格符、换行符、回车符、Tab符做分隔标记。所以str被分解成四个语言符号:We、Love、This和Game。int number = fenxi.countTokens();
调用countTokens方法得到分析器中计数变量的值赋值给number,也就是4.在循环中使用了hasMoreTokens()方法,只要字符序列中还有语言符号,该方法就返回true,循环体内使用nextToken()方法逐个获取字符序列的单词,并存入字符串数组中(k=1,从1开始)。所以结果变为了s[1]=“We”,s[2]=“Love”,s[3]=“This”,s[4]=“Game”.之后用条件语句判断传入的参数是否小于等于计数变量,是的话就返回index作为s数组下标的值也就是Love。
第二个同理,只不过传入的是4,那么s2就是Game。最后输出Love:Game。
3.15
abc我们
getBytes()方法使用平台默认的字符编码,将当前String对象的字符序列存放到字节数组中,并返回数组的引用。第一行输出数组的长度,英文字母占一个字节,汉字占两个字节,所以长度为15.
然后又创建新的String 对象s,在构造方法中传入三个参数,意思是用数组d中从0到6(7-1)位置上的字符去创建String对象输出的s为abc我们
4.13579
这道题考察StringBuffer类使用方法,首先传入字符串s"1234567890",使用循环遍历字符串,如果遍历到能被2整除的位置,就调用charAt(i)方法得到字符序列该位置上的字符,之后调用append方法将该字符追加到StringBuffer对象的字符序列中。
5.9javaHello
regex是正则表达式,\d代表0-9中任意一个数字,\w代表可用于标识符的字符(不包括美元符号),{1,}表示至少出现1次,调用matches方法判断当前String对象的字符序列是否和参数regex指定的正则表达式匹配,可以发现str1是不匹配的,因为有两个数字,而str2是匹配的,所以输出str2。
(1)字符串调用public String toUpperCase()方法返回一个字符串,该字符串把当前字符串中的小写字母变成大写字母;字符串调用public String toLowerCase()方法返回一个字符串,该字符串把当前字符串中的大写字母变成小写字母。String类的public String concat(String str)方法返回一个字符串,该字符串是把调用该方法的字符串与参数指定的字符串连接。编写一个程序,练习使用这3个方法。
public class E {
public static void main (String args[ ]) {
String s1,s2,t1="ABCDabcd";
s1=t1.toUpperCase();
s2=t1.toLowerCase();
System.out.println(s1);
System.out.println(s2);
String s3=s1.concat(s2);
System.out.println(s3);
}
}
(2)String类的 Public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。编写程序使用该方法得到一个字符串中的第一个和最后一个字符。
public class E {
public static void main (String args[ ]) {
String s="ABCDabcd";
char cStart=s.charAt(0);
char cEnd = s.charAt(s.length()-1);
System.out.println(cStart);
System.out.println(cEnd);
}
}
(3)编写程序剔除一个字符串中的全部非数字字符,例如,将形如“ab123you”的非数字字符全部剔除,得到字符串“123”。
public class E {
public static void main (String args[ ]) {
String str = "ab123you你是谁?";
String regex = "\\D+";
str = str.replaceAll(regex,"");
System.out.println(str);
}
}