日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 变成题_Java 习题8 参考答案及解析

發布時間:2023/12/4 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 变成题_Java 习题8 参考答案及解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.問答題

“\hello”是正確的字符串常量嗎?

“你好KU”.length()和”\n\t\t”.length()的值分別是多少?

“Hello”.equals(“hello”)和”java”.equals(“java”)的值分別是多少?

“Bird”.compareTo(“Bird fly”)的值是正數還是負數?

“I love this game”.contains(“love”)的值是true嗎?

“RedBird”.indexOf(“Bird)的值是多少?”RedBird”.indexOf(“Cat”)的值是多少?

執行”Integer.parseInt(“12.9”);”會發生異常嗎?

問答題解析

1.不是。“\hello”是。

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轉換.

2.選擇題

(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);

}

}

總結

以上是生活随笔為你收集整理的java 变成题_Java 习题8 参考答案及解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。