201711671106《Java程序设计》第八章学习总结

本文深入讲解Java中的关键类,如String、Date、Math等,涵盖了类的构造、方法使用及其实例,同时介绍了数字和日期格式化技巧,是Java学习者的必备指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

教材学习内容总结

第八章是常用实用类的介绍 java中实用类有以下几个:

String类 StringTokenizer类 Scanner类 StringButter类 Date类 Calendar类 Math类 BigInterger类

Random类 Class类 Console类 Pattern类 Match类,本章还介绍了日期格式化与数字格式化

String类

String类对象 如:“你好” 

声明对象:(1) String s=new String(''Java') (2)char a[]={'J','a','v','a'} String s =new String(a);(3)String (char a[],int startIndex,int count)

常用方法:

(1)public int length()  获取一个String对象的字符序列的长度

(2)public boolean equals(String s)调用此方法比较当前String 对象的字符序列是否与参数s指定的String对象的字符序列相同,若相同,返回true;否则false。(

 (3)public boolean startsWith(String s)、public boolean endsWith(String s)调用此方法,判断当前String对象的字符序列前缀是否参数指定的String对象s的字符序列。String tom='天气预报'  tom.startswith("天气")=ture   同理endwith方法

(4)public int compareTo(String s)按字典序参数指定的String对象s字符系列比较大小。如果相同,则返回0,大于则返回正值,若小于则返回负。如String str="abcde",则str.compareto("boy")<0,To("aba")>0.

(5) public boolean contains(String s)调用此方法判断String 对象的字符序列是否包含参数s

(6)public int indexOf (Strings) 从0索引位置开始检索首次出现str的字符序列的位置  返回该位置; public int lastIndexOf(String s) 从0索引位置开始检索最后一次出现str的字符序列的位置  返回该位置; 

(7)public String substring(int startpoint)调用该方法获得新对象,复制从startpoint位置到最后的字符序列;而substring(int start,int end)获得从start到end-1的字符序列。

(8)public string trim() 获得新的字符系列,当前字符对象去掉前后空格的字符序列。

字符间的转化:java.lang包中的Integer类调用方法public static int parseInt(String s)将用数字组成的字符序列转化为int型数据。

而又可以将数值转化为String对象 public static String valueOf(int n).。

对象的字pubilc String toString()返对象的字符串表示。符串表示:

字符串与字符数组:

将String对象的字符序列存放到数组:public void getchars(int start,int end,char c[],int offset) 从start 到 end-1,存放在数组的offset 位置;另一方法:public char[] toCharArray() 将字符序列全部字符存放在长度足够的数组中。

字符串与字节数组:

String的构造方法String(byte[])用指定的字节数组构造一个String对象。String(byte[],int offset,int length)用指定字节数组的起始位置offset到length字节获取一个对象;

public byte[]get Bytes()方法使用默认的字符编码存放对象的字符序列到字节数组中,返回数组引用;

public byte[]get Bytes(String charsetName)方法使用参数指定字符编码,将对象的字符序列到字节数组中,返回数组引用;

正则表达式:

String对象的字符序列,含有特殊含义的字符。如:"."代表任意字符  其他具体见P187

字符串可通过调用public String replaceALL(String regex,String replacement)方法返回对象,把当前对象的字符序列中与regex匹配的字符序列,用参数replacement的字符系列替换字符序列,如:String str=‘12hello567bird’.replaceAll("[a-zA-Z]+","你好"),将字符序列中的英文用你好替换,变成12你好567你好。

字符串的分解:方法pubilc String[] spilt(String regex),调用该方法使用指定的regex正则表达式分解出单词并存放于String数组。

StringTokenizer类:

当分析一个String对象的字符系列并将字符序列分解成可被独立使用的单词时,可用StringTokenizer,此方法不需正则表达式作分隔标记。有两个常用的构造方法:

(1)StringTokenizer(String s):为String对象s构造一个分析器。使用默认的分隔标记如空格,换行。

(2)StringTokenizer(String s,String delim)以参数中的字符序列中的字符的任意排序作为分隔标记。

Scanner类:

Scanner对象:可以解析字符系列的单词。如:String NBA=“love you”  Scanner scanner=new Scanner(NBA);可用useDelimiter(正则表达式)作为分隔标记;若不指定,则默认用空白字符。

StringBuffer类:

StringBuffer对象 与String不同,因为对象的实体的内存空间可以自由改变大小。如:StringBuffer s=new Stringbuffer(“i like”),可调用append 追加如 s.append(''basketball'')。

三个构造方法:StringBuffer() StringBuffer(int size) StringBuffer(String s) 方法一可以容纳16字符,大于16则自动增加,可通过length增加长度,通过capacity()获取实际长度;第二个可以直接size;第三个可以给实体字符序列+16.

StringBuffer类的常用方法:

(1)append()  如append(String s)方法在原有的字符串后面添加字符串,返回的是添加后的StringBuffer对象

(2)charAt( ),返回此序列中指定索引处的 char 值   setCharAt(int index, char ch ),将给定索引处的字符设置为 ch。

(3)public StringBuffer insert(int offset,String str)  在字符串缓冲区的第offset个字符后面插入指定字符串

(4)/public StringBuffer reverse(),将字符串反转

(5)public StringBuffer delete(int start,int end)   从字符缓冲区中从start索引删除到end索引所对应的字符,其中包括start索引不包括end索引对应的值

(6)StringBuffer replace(int startindex,int endindex,String str)将对象的字符系列的一个子字符序列用参数str替换,被替换的子序列由startindex和endindex-1替换。

Date类与Calendar类:

date类:(1)使用无参数构造方法 Date nowTime =new Date(); (2)带参 Date date1=new Date(1000);(2)带参数的构造方法 Date(long time)

Calendar类 :使用Calendar中的getInstance方法初始化日历对象,然后调用方法翻到任意日期。如:

Calendar calendar =Calendar.getInstance(); 然后调用方法void set(int year,int month,int date,int hour,int minute,int second)。

calendar对象调用public int get(int field)可以获取有关年份、月份、小时、星期等信息。

calendar对象嗲用public long getTimeInMills()可以返回当前calendar对象中的时间毫秒计时。

日期的格式化

format方法:format(格式化模式,日期列表)

格式化模式:format方式中的“格式化模式”是一个用双引号括起的字符序列,该字符序列中的字符由时间格式符普通字符构成。

日期列表:format方法中的“日期列表”可以是用逗号分隔的Calendar对象或Date对象。保证:格式化模式中格式符个数与日期列表中的日期个数相同。

格式化同一日期:可以在格式化模式中使用“<",格式同一个日期。

不同区域的星期格式:format(Locate locale,格式化模式,日期列表) 方法 用特定区域表示日期,例如 String s=String.format(Locale.JAPAN,"%tA(%<tF)",new Date());

Math类 用于程序方法中进行数学计算,例如:开平方根,绝对值 具体方法见P203

BigInter类: 用于处理较大整数的对象之间的类,注若字符串参数val有非数字字符则会异常。

Random类 :产生随机数  (1)调用random()返回一个0~1的随机数 

(2)public Random() 创建一个random对象  public Random(long seed) 用指定的参数seed创建对象

(3)nextInt(int n)返回一个0-n的随机数 nextDouble(n)返回一个0.0~1.0的随机数 

数字格式化 :使用format方法对数字进行格式化

格式化模式:format(格式化模式,日期列表)中的“格式化模式”是一个用双引号括起的字符序列,该字符序列中的字符由格式符和普通字符构成。 例如:String s=String。format(“%.2f”,3.141592)得到3.14

值列表 用逗号分隔的变量、常量和表达式。例如:String s=String.format(%d元%0.3f公斤%d台,888,999,777666,123)  得到888元999.778公斤123台。

格式化顺序 默认从左到右顺序使用格式化模式格式化 例如String s=String。format("从左到右:%d,%.3f,%d",x,y,100)

得到s :从左到右:888,3.142,100

格式化整数:%d、%o、%x、%X可以格式化byte、Byte、Short、short、int、Interger、long、Long 例如:

%d将值格式化成十进制整数,%o将值格式化成八进制整数,%x将值格式化成小写的十六进制整数,例如abc58,%X将值格式化成小写的十六进制整数,ABC58.

修饰符:在格式化整数时候加上符号或者按照某种形式格式化,例如+强制加上+,“,”按千分组。

数据的宽度:格式“%md” 增加空格,“%-md”在数字后面加空格

格式化浮点数:float、Float、double、Double

%f-十进制 %e(E)-格式化为科学记数法的十进制浮点数、%g(G)、%a(A)格式化浮点数

修饰符与宽度同上。

Class类与Console类

class类:帮助其他程序创建其他类的实例,例如用class对象得到某个类的实例:

①:使用Class类得到一个和某类(参数ClassName指定的类)相关的Class对象:public static Class forName(String className)throws ClassNotFoundException 返回一个与参数Classname指定的类相关的Class对象。

②:在①中获得Class对象调用 public static newInstance() throws InstantiationException,IllegalAccessException 得到className对象。

Console类:在键盘输入一行文本,但不在命令行显示

步骤:①调用console()方法返回Console返回一个对象 Console cons=System。console();然后cons调用readPassword读取文本,并将文本以char数组返回 char[] passwd=cons.readPassword();

模式匹配:检索和制定模式匹配的字符序列,Pattern类和Matcher类

假设有String input=“hello,good morning,this is a good idea” 要知道input的字符序列从那个开始那个结束曾出现字符序列good,步骤:①建立Pattern对象 Pattern pattern=Pattern。compile(regex) ②用matcher方法检索String对象input进行对象匹配。

 

内容简介 《Java程序设计习题集》是同作者所编写的清华大学教材《Java程序设计》相配套的习题集。习题集内容覆盖面广,包括:Java言的基本常识、基本语法、面向对象的基本概念、数组、字符串、异常处理、文件和数据流、图形用户界面设计、小应用程序、线程、编程规范、网络程序设计、多媒体民图形学程序设计以及数据库程序设计等。全书共分为习题、参考答案和测试要点与解题说明3个部分。习题包括判断正误、填空题、选择题、简答题、编程题和趣味题等6种题型,并按难易程序分为3 个等级,采用星号注明。本习题集收集了Java程序编写常见问题,并以习题形式总结和归纳Java程序设计知识要点,同时兼顾了SCJP(Sun公司 Java程序员认证考试),从而降低学习难度,减少编写程序出现错误的枘地,也便于掌握各个知识要点测试对Java程序设计的掌握熟练程度。这些特点有利于初学者在学习过程中少走弯路。对知识点的总结以及内容的全面性也使得《Java程序设计习题集》具有一定的手册特性,非常适合复习,同时也方便教师出题,使得各章节的试题容易在试卷中分布均匀合理。在本习题集中的编程题和趣味题还有可能采用其他计算机语言实现,从而本习题集也有可能成为学习其他计算机语言的实践素材。 编辑推荐 内容全面:习题全面覆盖了Java程序设计(J2SE)的基本知识要点和重要知识要点。以习题的形式对JaVa程序设计方法和常见问题进行了总结与归纳,从而方便复习。   实用性:《Java程序设计习题集》每章都含有一些趣味题,营造了一种轻松而快乐的学习氛围,努力培养和提高学生的学习乐趣,同时也使学生容易产生学习成就感。   趣味性:习题基本上覆盖了程序员在编写Java程序时经常出现的问题Java程序设计知识要点,各习题也列出其测试要点,从而方便教师从中挑选改编考题以及方便学生进行实战模拟练习测试,同时也可以为SCJP考试作准备。   简洁性:每道习题者晖力求典型而简洁,这样既方便初学者,也有利于提高学习效率,在较短的时间内测试并领会较多的知识要点。 作者简介 雍俊海1991年到2000年就读于清华大学计算机科学与技术系,获学士。硕士和博士学位,被评为清华大学优秀博士毕业生,博士论文被评为全国优秀博士论文。从2000年3月到2000年6月在香港科技大学计算机系担任访问研究员,从2000年11月到2002年9月在美国肯塔基大学计算机系做博士后,现为清华大学软件学院教师。参与负责多个国家自然科学基金项目。国家863项目。973项目和美国自然科学基金项目。在2003-2004学年度在清华大学开设了"Java程序设计"课程,获得学生一致好评。根据清华大学2003-2004学年秋季学期教学评估结果,教学成绩在全校名列前茅,在清华大学软件学院所有参评教师中取得教学成绩第一名,在所有讲授Jaya课程的清华大学参评教师中获得教学成绩第一名。因此还获得了清华大学软件学院教学工作优秀奖、大学生研究训练计划(SRT)优秀指导教师一等奖。 目录 第一部分习题 第1章 绪论 第2章 结构化程序设计 第3章 面向对象程序设计 第4章 数组、字符串与异常处理 第5章 文件与数据流 第6章 图形用户界面设计 第7章 小应用程序 第8章 多线程程序设计 第9章 编程规范 第10章 网络程序设计 第11章 多媒体与图形学程序设计 第12章 数据库程序设计 第二部分 参考答案 第1章 绪论 第2章 结构化程序设计 第3章 面向对象程序设计 第4章 数组、字符串与异常处理 第5章 文件与数据流 第6章 图形用户界面设计 第7章 小应用程序 第8章 多线程程序设计 第9章 编程规范 第10章 网络程序设计 第11章 多媒体与图形学程序设计 第12章 数据库程序设计 第三部分 测试要点与解题说明 第1章 绪论 第2章 结构化程序设计 第3章 面向对象程序设计 第4章 数组、字符串与异常处理 第5章 文件与数据流 第6章 图形用户界面设计 第7章 小应用程序 第8章 多线程程序设计 第9章 编程规范 第10章 网络程序设计 第11章 多媒体与图形学程序设计 第12章 数据库程序设计 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值