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

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java当中Map的认识和基本用法

一&#xff1a;Map Map用于保存具有映射关系的数据&#xff0c;Map集合里保存着两组值&#xff0c;一组用于保存Map的ley&#xff0c;另一组保存着Map的value,也就是Map的 键值 和关键值 。具体举例 &#xff0c;和查字典类似&#xff0c;通过key找到对应的value&#xff0c;通…

java 解析 manifest_解析AndroidManifest.xml之AXMLParser.java | 学步园

解析AndroidManifest.xml源码地址:http://code.google.com/p/android4me/source/browse/src/android4me/res/AXMLParser.java/* * Copyright 2008 Android4ME * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file exc…

Java手写Hashmap(HashMap的基本用法)

一&#xff1a;引言 HashMap是Map的实现类&#xff0c;其方法都可以继承Map,不用手写&#xff0c;本篇只是为了了解底层代码和复习java基础敲得码 二&#xff1a;上码 package cn.wyj.two;public class Demo5_手写HashMap<K,V> {Node2 table[];//位桶数组int size;pub…

龙芯3A5000初样顺利交付流片

此前&#xff0c;龙芯完成3A5000设计初样的流片交付。在3A4000架构的基础上&#xff0c;3A5000采用12纳米工艺&#xff0c;设计频率提高近40%&#xff0c;同频模式下功耗降低近60%&#xff0c;同时保持与3A4000芯片管脚兼容。龙芯3A5000和3A4000在微结构上变化不大&#xff0c;…

java堆和栈 常量池_GitHub - han-guang-xue/difference-of-stack-heap-pool: Java中堆、栈和常量池的区别...

Java中堆、栈和常量池的区别栈 堆 常量池的概念首先我们先了解一下概念&#xff0c;Java把内存分成两种&#xff0c;一种叫做栈内存&#xff0c;一种叫做堆内存。栈内存存放基本类型的变量数据和对象类型的引用(请注意存放的是引用)&#xff0c;对象本身不存放在栈中&#xff0…

Java当中TreeMap用法

一&#xff1a;引言 当用到了TreeMap时候&#xff0c;是因为要根据键值进行排序&#xff0c;使输出的结果是按递增顺序的 二&#xff1a;上码 package cn.wyj.two;import java.util.Map; import java.util.TreeMap;/*** 一般当 键值需要排序时&#xff0c;我们会选择用 Tree…

redhat java 多个版本_Linux下安装JDK(多个版本) 切换

1、检查系统是否自带了OpenJDK以及相关安装包&#xff0c;如果有的话则应先将其卸载。检查命令&#xff1a;java -versionrpm -qa | grep javarpm -e --nodeps tzdata-java-2013g-1.el6.noarchrpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686rpm -e --nodeps…

efcore 新特性 SaveChanges Events

efcore 新特性 SaveChanges EventsIntro昨天早上看到之前关注的一个 efcore 的 issue 被 closed &#xff0c;于是看了一眼&#xff0c; ef core 新合并了一个 PR&#xff0c;在 DbContext 中增加了 SaveChanges 相关的几个事件&#xff0c;具体的变更可以参数 PR https://gith…

Java手写HashSet

一&#xff1a;引言 HashSet类继承于 Set接口 其方法均可被直接调用&#xff0c;不用手写&#xff0c;本篇敲的码是为了熟悉底层原理&#xff0c;HashMap的特点&#xff1a;无序&#xff0c;无重复。其底层用的也是map<key,value>容器&#xff0c;但其value值固定,所以在…

十分钟搭建自己的私有NuGet服务器-BaGet

点击上方蓝字"小黑在哪里"关注我吧搭建BaGet上传程序包在vs中使用其他前言NuGet是用于微软.NET&#xff08;包括 .NET Core&#xff09;开发平台的软件包管理器。NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。通常使用NuGet都是官方的服务&…

java swing 面试题_下面有关JAVA swing的描述,说法错误的是?

Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。工具包中所有的包都是以swing作为名称&…

Java当中迭代器的使用(遍历容器ArrayList, HashSet,HashMap)

一&#xff1a;引言 关于entry 的解释代码有注释&#xff0c;觉得挺重要。 二&#xff1a;上码 package cn.wyj.two;import java.util.*; import java.util.Map.Entry;public class Demo10_迭代器的使用 {public static void main(String[] args) {textList();System.out.pr…

mysql or 创建索引_Mysql索引优化

1、单表索引优化单表索引优化分析创建表建表 SQLCREATE TABLE IF NOT EXISTS article(id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,author_id INT(10) UNSIGNED NOT NULL,category_id INT(10) UNSIGNED NOT NULL,views INT(10) UNSIGNED NOT NULL,comments INT(1…

.Net Core HttpClient处理响应压缩

前言在上篇文章[ASP.NET Core中的响应压缩]中我们谈到了在ASP.NET Core服务端处理关于响应压缩的请求&#xff0c;服务端的主要工作就是根据Content-Encoding头信息判断采用哪种方式压缩并返回。之前在群里有人问道过&#xff0c;现在的网络带宽这么高了还有必要在服务端针对请…

Java容器的遍历之增强for循环

一&#xff1a;为什么要用增强版的 for 循环呢 在普通的数组遍历当中&#xff0c;我们采用普通的for循环即可&#xff0c;但在遍历2.遍历集合、容器&#xff0c;当中我们一般采用增强版的for循环 &#xff0c;简单方便。 二&#xff1a;构造模式 for(数据类型 变量&#xff…

mysql脚本的制作_制作脚本实现mysql自动备份

首先执行vi dbbackup.sh命令&#xff0c;在打开的编辑器输入&#xff1a;#!/bin/bash/usr/local/mysql/bin/mysqldump -uuser -ppasswd databasename > /home/wwwroot/backup/date_$(date%Y%m%d).sql这段命令的意思是&#xff1a;用mysqldump导出名为databasename的数据库到…

在 PostgreSQL 中使用码农很忙 IP 地址数据库

在下载到码农很忙 IP 地址数据库后&#xff0c;我们可以将其存储在 PostgreSQL 数据库中&#xff0c;并在需要查询某个 IP 对应的位置数据时&#xff0c;通过 SQL 语句获取正确的结果。这是一种很便捷的使用方式&#xff0c;并且在增加了恰当的索引后&#xff0c;可以取得不错的…

Java当中Collections的用法

一&#xff1a;上码 package cn.wyj.two;/*** Collections辅助类的使用* * author 王永杰**/ import java.util.*;public class Demo11_Collections辅助类 {public static void main(String[] args) {List<String> list new ArrayList<String>();for( int i 0; …

.NET开发者提高编程技能的5种方法

.NET开发者提高编程技能的5种方法https://insights.dice.com/2017/08/29/5-ways-improve-programming-skills/即使拥有40年的编程经验&#xff0c;我唯一能确定的就是肯定有比我更好的程序员。但是我并没有放弃&#xff0c;我会继续尝试并提高自己的编程技能。我认为有五件事可…

Java当中用 javabean和其他容器存入表格数据 或 利用 容器进行存储表格

一&#xff1a;javabean 和list容器或map容器 package cn.wyj.two;import java.util.*;/*** javabean :必须有一个无参构造函数&#xff1b;变量属性私有化&#xff1b;* 本篇还是打印一张表* author 86155**/ public class Demo13_Javabean和其他容器 {public static void ma…