第一篇:Javadoc转换chm帮助文档的四种方法总结
Javadoc转换chm帮助文档的四种方法总结
目录
V1.0
关键词..........................................................................................................1
前言.............................................................................................................1
预处理..........................................................................................................1
第一种:使用jd2chm来生成chm帮助文档............................................................4
使用原版jd2chm_exe_03转换成chm..................................................................4
生成英文版本如下.............................................................................................4
生成中文版本如下.............................................................................................5
使用网上高手改进的版本jd2chm_0.34转换成chm..................................................7
生成英文版本如下.............................................................................................7
生成中文版本如下.............................................................................................8
第二种:使用javadoc2chm来生成chm帮助文档...................................................11
生成英文版本如下............................................................................................11
生成中文版本如下............................................................................................12
第三种:使用javadoc2help来生成chm帮助文档...................................................18
生成英文版本如下............................................................................................18
生成中文版本如下............................................................................................18 第四种:使用google code里面的javadoc2chm项目构建........................................20
生成英文版本如下............................................................................................20
生成中文版本如下............................................................................................22
总结............................................................................................................23
李顺利
[2010年1月6日] 关键词
Javadoc chm 转换 jd2chm javadoc2chm javadoc2help Javadoc2chm 中文乱码 李顺利
前言
朋友,当您在一个项目完成后,是不是需要把你的源码打包并且把注释打成Javadoc交给客户,Eclipse或者MyEclipse自动打成的Javadoc文档都是基于网页格式的,打开是很方便,不过真的用的时候,搜索每个方法或者什么的就很麻烦了,而chm帮助文档格式不但文件小,查阅都很方便,所以网上就出现了很多把Javadoc转换为chm格式的帮助文档的软件/工具或者方法。自己最近需要真的需要这个方面的需求,查阅了网上很多方法,发现很多都是写的很不详细,对于我这种刚接触的很是不清楚,经过我的学习和理解,现提供从网上总结的Javadoc转换chm帮助文档的四种方法,详细提供各个转换的步骤供大家学习,并且提供英文版本和中文版本Javadoc转换过程中出现的问题,特别是中文的时候出现的乱码现象,也提供一些解决方案。
预处理
转换之前需要了解的是chm是微软公司发布的一种帮助文档格式,所有,要使用下面的方法转换,请先安装HTML Help Workshop(后面简称为HHW)(实际上后面的一些处理有些都是在上面操作的)
http://msdn.microsoft.com/en-us/library/ms669985.aspx,下载完毕后就是安装了,很简单。
还有一个很重要的问题,就是如何把项目打成Javadoc,这有人应该会说,很简单啊,就是使用Eclipse或者Myeclipse的Export功能,是的,这是可以,但是有些小的方面还是需要我们强烈注意的 第一个问题就是Java代码的格式问题
Java代码编写的使用有的使用GBK,有的使用UTF-8,这个时候就会有区别。使用GBK编码的时候生成Javadoc文档时没有太大问题的,但是,要是整个项目的默认编码格式是UTF-8的话,就会报警告:编码 GBK 的不可映射字符
根本没有成功生成Javadoc文档,如何解决?解决方案就是在生成Javadoc的时候对VM options进行编码设置-encoding UTF-8-charset UTF-8,设置如下:
第二个问题就是如何把生成的Javadoc文档生成英语版本 这个问题有的时候为了解决中文乱码是很重要的,我们生成英文版本的Javadoc(仅对生成的Javadoc框架的语言做限制,并没有对注释内容的格式做限制,也就是说这个时候注释还是可以是中文的)。解决方案也是在VM options中加入-locale en_US,但是此时注意的是,如果把-locale en_US设置在后面的话,会报一个错误,大致是-locale en_US 在javadoc命令必须是在最前面,所有,正确的写法就是-locale en_US-encoding UTF-8-charset UTF-8(整合上面),默认如果不写-locale的话,安装locale语言来进行设置,当然我们中国人就是中文的了。(当然如果你工程默认编码是GBK而且您想生成中文的帮助文档的话,这写都可以不要,使用默认即可)
设置截图如下:
做好了上面的工作,现在就请大家看我是如何转换成chm帮助文档的。
(做完这些,请生成中文和英文各一份Javadoc文档,供后面测试使用)
第一种:使用jd2chm来生成chm帮助文档
使用原版jd2chm_exe_03转换成chm
原版jd2chm_exe_03需要通过官网下载http:// Help Workshophhc.exe“ api_en_US.hhp回车(注意C:Program FilesHTML Help Workshophhc.exe是HHW默认安装路径,如果不是请自行修改)
生成的chm文件在解压的包的文件夹里:
打开后是上面的这样子,具体的原因不清楚,不过解决的方法就是把Javadoc文件夹和ruby命令的文件夹不要放在同一个盘内,不在同一个盘里就会使用绝对路径。重修生成,但是这种方法也并不适合,当我们把原Javadoc文档的文件夹删除或者移动了,这个时候也会出现上面的情况。具体的我打开了hhp文件查看了一下,应该是这种方法使用的是觉得路径,而并没有把文件进行包装在生成。(要查看下面截图的效果,请把docs文件夹保留)
命令
ruby createhhp.rb api_en_US e:docsapi_en_US ”C:Program FilesHTML Help Workshophhc.exe“ api_en_US.hhp
生成中文版本如下
Cmd命令进入javadoc2chm目录,写下面的命令
ruby createhhp.rb 中文帮助文档 e:docsapi_zh_CN回车
”C:Program FilesHTML Help Workshophhc.exe" 中文帮助文档.hhp回车
(注意C:Program FilesHTML Help Workshophhc.exe是HHW默认安装路径,如果不是请自行修改)
不能设置Title和中文的Title时候乱码,操作麻烦,还要安装ruby辅助软件。
第二篇:总结的Javadoc转换chm帮助文档的四种方法
http://lishunli.iteye.com/blog/1051688 李顺利
[2010年1月6日]
关键词
Javadoc chm 转换 jd2chm javadoc2chm javadoc2help Javadoc2chm 中文乱码 李顺利
前言
朋友,当您在一个项目完成后,是不是需要把你的源码打包并且把注释打成Javadoc交给客户,Eclipse或者MyEclipse自动打成的Javadoc文档都是基于网页格式的,打开是很方便,不过真的用的时候,搜索每个方法或者什么的就很麻烦了,而chm帮助文档格式不但文件小,查阅都很方便,所以网上就出现了很多把Javadoc转换为chm格式的帮助文档的软件/工具或者方法。
自己最近需要真的需要这个方面的需求,查阅了网上很多方法,发现很多都是写的很不详细,对于我这种刚接触的很是不清楚,经过我的学习和理解,现提供从网上总结的Javadoc转换chm帮助文档的四种方法,详细提供各个转换的步骤供大家学习,并且提供英文版本和中文版本Javadoc转换过程中出现的问题,特别是中文的时候出现的乱码现象,也提供一些解决方案。
预处理
转换之前需要了解的是chm是微软公司发布的一种帮助文档格式,所有,要使用下面的方法转换,请先安装HTML Help Workshop(后面简称为HHW)(实际上后面的一些处理有些都是在上面操作的)
http://msdn.microsoft.com/en-us/library/ms669985.aspx,下载完毕后就是安装了,很简单。
还有一个很重要的问题,就是如何把项目打成Javadoc,这有人应该会说,很简单啊,就是使用Eclipse或者Myeclipse的Export功能,是的,这是可以,但是有些小的方面还是需要我们强烈注意的 第一个问题就是Java代码的格式问题
Java代码编写的使用有的使用GBK,有的使用UTF-8,这个时候就会有区别。使用GBK编码的时候生成Javadoc文档时没有太大问题的,但是,要是整个项目的默认编码格式是UTF-8的话,就会报警告:编码 GBK 的不可映射字符
根本没有成功生成Javadoc文档,如何解决?解决方案就是在生成Javadoc的时候对VM options进行编码设置-encoding UTF-8-charset UTF-8,设置如下:
第二个问题就是如何把生成的Javadoc文档生成英语版本
这个问题有的时候为了解决中文乱码是很重要的,我们生成英文版本的Javadoc(仅对生成的Javadoc框架的语言做限制,并没有对注释内容的格式做限制,也就是说这个时候注释还是可以是中文的)。
解决方案也是在VM options中加入-locale en_US,但是此时注意的是,如果把-locale en_US设置在后面的话,会报一个错误,大致是-locale en_US 在javadoc命令必须是在最前面,所有,正确的写法就是-locale en_US-encoding UTF-8-charset UTF-8(整合上面),默认如果不写-locale的话,安装locale语言来进行设置,当然我们中国人就是中文的了。(当然如果你工程默认编码是GBK而且您想生成中文的帮助文档的话,这写都可以不要,使用默认即可)设置截图如下:
做好了上面的工作,现在就请大家看我是如何转换成chm帮助文档的。(做完这些,请生成中文和英文各一份Javadoc文档,供后面测试使用)
第一种:使用jd2chm来生成chm帮助文档 使用原版jd2chm_exe_03转换成chm 原版jd2chm_exe_03需要通过官网下载http:// Help Workshophhc.exe“ api_en_US.hhp回车(注意C:Program FilesHTML Help Workshophhc.exe是HHW默认安装路径,如果不是请自行修改)
生成的chm文件在解压的包的文件夹里:
打开后是上面的这样子,具体的原因不清楚,不过解决的方法就是把Javadoc文件夹和ruby命令的文件夹不要放在同一个盘内,不在同一个盘里就会使用绝对路径。重修生成,但是这种方法也并不适合,当我们把原Javadoc文档的文件夹删除或者移动了,这个时候也会出现上面的情况。具体的我打开了hhp文件查看了一下,应该是这种方法使用的是觉得路径,而并没有把文件进行包装在生成。(要查看下面截图的效果,请把docs文件夹保留)
命令
ruby createhhp.rb api_en_US e:docsapi_en_US ”C:Program FilesHTML Help Workshophhc.exe“ api_en_US.hhp
生成中文版本如下
Cmd命令进入javadoc2chm目录,写下面的命令
ruby createhhp.rb 中文帮助文档 e:docsapi_zh_CN回车
”C:Program FilesHTML Help Workshophhc.exe" 中文帮助文档.hhp回车(注意C:Program FilesHTML Help Workshophhc.exe是HHW默认安装路径,如果不是请自行修改)
不能设置Title和中文的Title时候乱码,操作麻烦,还要安装ruby辅助软件。
总结
上面的一些不完美的地方,都可以使用HTML Help Workshop进行改善。实际上也是因为此次机遇,让我学习了HTML Help Workshop的操作,以后制作chm文档就很方便了。
上面方法通过参考网上的操作总结自己亲自实际而成,需要探讨的请联系QQ:506817493。
顺利提高所有工具和制作成果的文件下载(不包括ruby辅助软件,自行下载)Javadoc转换chm帮助文档的四种方法总结.rar
第三篇:JAVA四种基本排序的总结
JAVA四种基本排序,包括冒泡法,插入法,选择法,SHELL排序法.其中选择法是冒泡法的改进,SHELL排序法是 插入法的改进.所以从根本上来说可以归纳为两种不同的排序方法:即:插入法&冒泡法
一 插入法:遍历排序集合,每到一个元素时,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置。交换是相邻遍历移动,双重循环控制实现.这种排序法属于地头蛇类型,在我的地牌上我要把所有的东西按一定的顺序规整,过来一个,规整一个.处理代码如下: public void sort(int[] data){ int temp;
for(int i=1;i〈data.length;i++){ for(int j=i;(j〉0)&&(data[j]〉data[j-1]);j--){
temp=date[j];data[j]=data[j-1];data[j-1]=temp;} } } 二冒泡法:比较容易,它的内层循环保证遍历一次后,集合中最小(大)元素出现在它的正确位置,下一次就是次小元素。。该方法在集合分布的各种情况下交换移动的次数基本不变,属于最慢的一种排序。实现也是双重循环控制。这种排序法属于过江龙,就是要找到极端,但是过奖龙也有大哥,二哥等,所以他们只能是大哥挑了二哥挑.处理代码如下: public static int [] maopao(int[] data){ int temp;
for(int i=0;i〈data.length-1;i++){ for(int j=i+1;j〈data.length;j++〉{ if(data[i]〈data[j]〉{ temp=data[i];data[i]=data[j];data[j]=temp;} 〉 〉
return data;
三选择法:该方法只是通过遍历集合记录最小(大)元素的位置,一次遍历完后,再进行交换位置操作,类似冒泡,但在比较过程中,不进行交换操作,只记录元素位置。一次遍历只进行一次交换操作。这个对与交换次序比较费时的元素比较适合。这种排序法比冒泡法要城府要深的多,我先记住极端数据,待遍历数据完了之后,我再处理,不像冒泡法那样只要比自己极端一点的就要处理,选择法只处理本身范围内的最极端数据.public static void xuanze(int[] data){ int temp;
for(int i = 0;i 〈 data.length;i++〉 { int lowIndex = i;
for(int j = data.length-1;j)i;j--){ if(data[j])data[lowIndex]){ lowIndex = j;} } temp=data[i];
data[i]=data[lowIndex];data[lowIndex]=temp;} } 四 Shell排序:
它是对插入排序的一种改进,是考虑将集合元素按照一定的基数划分成组去排序,让每一组在局部范围内先排成基本有序,最后在进行一次所有元素的插入排序。public void sort(int[] data){ for(int i=data.length/2;i)2;i/=2){ for(int j=0;j〈i;j++〉{ insertSort(data,j,i);} 〉
insertSort(data,0,1);〉
private void insertSort(int[] data, int start, int inc){ int temp;
for(int i=start+inc;i〈data.length;i+=inc〉{ for(int j=i;(j)=inc)&&(data[j]〈data[j-inc]〉;j-=inc〉{ temp=data[j];data[j]=data[j-inc] data[j-inc]=temp;} 〉 〉
第四篇:句式转换题方法总结
小学语文句式转换题方法总结与练习| 含答案
01
反问句与陈述句
一、反问句变陈述句
1.先删去反问词(怎能、怎么、难道、哪里等等),有的句子可适当再加上“很”“都”等,使句子表达的意思更准确。
2.看句子里的有没有否定词“不”,有的给删去,没有的给加上。3.反问语气词删去“?”变“。”。练习:(反问改陈述)
1.我们怎能忘记老师的淳淳教导? 我们不能忘记老师的淳淳教导。2.那浪花所奏的不正是一首欢乐的歌吗? 那浪花所奏的正是一首欢乐的歌。
3.这里的景色这么美,怎能不使我们流连往返呢? 这里的景色这么美,使我们流连往返。4.这点小事,难道还要妈妈担心吗? 这点小事,不要妈妈担心。
5.大千世界,哪里没有野花的倩影呢?
大千世界,到处都有野花的倩影。6.你难道没看比赛吗? 你看了比赛。
7.你难道不去上体育课了吗? 你去上体育课。
二、陈述句变反问句
1.先加上反问词(怎能、怎么、难道、哪里等等),有的句子可适当再加上“很”“都”等,使句子表达的意思更准确。
2.看句子里的有没有否定词“不”,有的给删去,没有的给加上。3.反问语气词加上“。”变“?”。练习:
1.我们不能因为学习任务重而不参加体育活动。(我们怎么能因为学习任务重而不参加体育活动呢?)2.这幅画是我们班彩颖画的。
(难道这幅画不是我们班彩颖画的吗?)
3.父母含辛茹苦地把我们养大,我们不应该伤他们的心。(父母含辛茹苦地把我们养大,我们怎么能伤他们的心呢?)4.对少数同学不守纪律的现象,我们不能不闻不问。
(对少数同学不守纪律的现象,我们怎么能不闻不问呢?<难道我们能不闻不问吗?>)
02
直接引语与间接引语
对话与转述的互换练习:(直接引语改间接引语)1.外公对小英说:“我告诉你,这是中国最有名的花。”(外公对小英说,他告诉小英,这是中国最有名的花。)
2.张强笑着对妈妈说:“李明今天生病了,我去帮他辅导功课。”(张强笑着对妈妈说,李明今天生病了,他去帮李明辅导功课。)3.李老师兴奋地说:“我们班战胜了四(1)班,获得了冠军。”(李老师兴奋地说,他们班战胜了四(1)班,获得了冠军。)4.王老师对小华说:“我把你的书包缝好了。”(王老师对小华说,他把小华的书包缝好了。)5.爸爸说:“我明天要去昆明,你自己做饭吃。”(爸爸说,他明天要去昆明,让我自己做饭吃。)6.爸爸说:“你明天别去玩了,我带你有事去。(”爸爸说,让我明天别去玩了,他带我有事去。)
03
缩句
1.要知道写的是什么。2.表示时间、地点、数量、方向、环境、修饰词语(的、地、得前面的词语)都可以缩去。
3.缩句后变成:“名词+动词+名词”或“名词+动词”。练习:
1.山民的几句朴素的话包蕴着意味深长的哲理。(话包蕴着哲理。)
2.红四团取得了长征中的又一次决定性的胜利。(红四团取得胜利)
3.汽轮发电机厂的工人师傅把一台台进口钻机熟练地安装好了。(工人师傅把钻安装好。)
4.语文老师给大家讲了一个关于小红帽打败大灰狼的故事。
(老师讲了故事。)
04
修改病句病句类型
语序不当、搭配不当、成分残缺或赘余、结构混乱、表意不明、不合逻辑。
一、成分残缺
1.春天来了,越来越来暖和了。(春天来了,天气越来越来暖和了。)2.洒在沙滩上,沙滩上一片银白。(月光洒在沙滩上,沙滩上一片银白。)3.学了《爱迪生》这一课受到了教育。(学了《爱迪生》这一课我受到了教育。)4.雷锋全心全意为人民服务的事迹。
(雷锋全心全意为人民服务的事迹修复我们学习。)
二、成分赘余
1.联欢会上,他首先第一个走上台表演节目。联欢会上,他第一个走上台表演节目。
2.奶奶的菜园里种了茄子、西红柿、黄瓜和蔬菜。奶奶的菜园里种了茄子、西红柿、黄瓜。3.我经常阅读、看科幻小说。我经常阅读科幻小说。
4.松鼠喜欢把窝搭在高大的大树上。松鼠喜欢把窝搭在高大的树上。
三、表意不明
1、李红有时候经常和张明在一起打球。李红经常和张明在一起打球。
2、妹妹找不到爸爸妈妈心里很着急。妹妹找不到爸爸妈妈她心里很着急。
3、有人主张接受,有人主张反对,他同意这种主张。有人主张接受,有人主张反对,他同意第一种主张。
4、全班同学都参加了这次公益活动,只有张刚没有参加。全班同学除了张刚以外都参加了这次公益活动。
四、搭配不当
1、今天联欢会上的音乐和舞蹈真好看。今天联欢会上的杂技和舞蹈真好看。
2、我很喜欢参加自然博物馆。我很喜欢参观自然博物馆。
3、战士们冒着倾盆大雨和泥泞的小路前进。战士们冒着倾盆大雨和踩着泥泞的小路前进。
4、战斗正在热烈地进行着。战斗正在激烈地进行着。
五、语序不当
1、我们学校师生全体去参观科技馆。我们学校全体师生去参观科技馆。
2、王丽在演唱会上唱了优美的一支歌。王丽在演唱会上唱了一支优美的歌。
3、美术和音乐这两门功课对我很感兴趣。我对美术和音乐这两门功课很感兴趣。
4、李华被同学们一定评为三好学生。
李华被一定同学们评为“三好学生”。
5、学校把“学雷锋积极分子”的名单已经公布出来了。
学校已经把“学雷锋积极分子”的名单公布出来了。
05
“把”字句和“被”字句
(1)这个故事里的主人公迷住了我。
“把”字句:这个故事里的主人公把我迷住了。“被”字句:我被这个故事里的主人公迷住了。(2)大风卷起的尘土遮住了我的视线。
“把”字句:大风卷起的尘土把我的视线遮住了。“被”字句:我的视线被大风卷起的尘土遮住了。
(3)经过一千多次的试验,爱迪生终于找到了适合做灯丝的材料。“把”字句:经过一千多次的试验,爱迪生终于把适合做灯丝的材料找到了。“被”字句:经过一千多次的试验适合做灯丝的材料,终于被爱迪生找到了。
06
小学语文句子句型转换练习题
一、按要求写句子
1、把“把”字句改成“被”字句。
疲劳和干渴,把它们折磨得有气无力。
它们被疲劳和干渴,折磨得有气无力。
2、把“被”字句改成“把”字句。
我的错误马上被朋友们纠正了。
朋友们马上把我的错误纠正了。
3、改变词序,意思保持不变。
出金华城大约5公里到罗甸。
出金华城到罗甸大约5公里。
雨从早到晚哗哗哗哗地下个不停。雨哗哗哗哗地从早到晚下个不停。
4、改变词序,改变句意。那些来南京的客人都很热情。那些南京来的客人都很热情。这几道题你全没有做对。
这几道题你没有全做对。
5、把反问句改成陈述句。
我们哪里有近道,还不和你们是一条道?
我们没有近道,还和你们是一条道。
毒刑拷打算得了什么?死亡也无法叫我开口。
毒刑拷打不算什么。死亡也无法叫我开口。都是你自己找的,我怎么帮得了你的忙?
都是你自己找的,我帮不了你的忙。
6、把陈述句改成反问句。
猫的性格实在有些古怪。
难道 猫的性格没有些古怪吗?
在这个长满了红锈的鱼钩上,闪烁着灿烂的金色的光芒。
难道在这个长满了红锈的鱼钩上,没有闪烁着灿烂的金色的光芒吗?
7、把直接引语改成间接引语。周瑜长叹一声,说:“诸葛亮神机妙算,我真不如他。”
周瑜长叹一声说,诸葛亮神机妙算,他真不如诸葛亮。山姆握着珊迪的手说:“我会永远照顾你的。”
山姆握着珊迪的手说,他会永远照顾珊迪的。
张林告诉我:“要是星期日下雨,我们就不去看电影。”
张林告诉我,要是星期日下雨,就不去看电影了。
8、把间接引语改成直接引语。
妈妈严肃地对我说,马上就要期末考试了,我一定要认真复习,不要辜负老师和她对我的一片期望。
妈妈严肃地对我说:“马上就要期末考试了,你一定要认真复习,不要辜负老师和我对你的一片期望。”
二、照样子写句子
1、例:李老师推开门走进教室。小明走进食堂拿起碗走向窗口。(连动句)
2、例:夜空的繁星,仿佛碧波上撒满的宝石。海面上的波光,仿佛地上闪闪发光的金子。(比喻句)
3、例:井冈山是中国革命的摇篮。
西湖,就是镶嵌在这天堂里的一颗明珠。(比喻句)
4、例:敌人使用了燃烧弹,邱少云的周围成了一片火海。阳光之下,湖面成了金色的镜子。
5、例:天空的星星快活地眨着眼睛。
宁静的夜晚,只有那天上的星星在窃窃私语。(拟人句)
6、这些信件和报纸给千家万户带来了希望、欢乐和温暖。
那些星星和月亮给千家万户送去了光明,送去了希冀,送去了慰藉。(排比句)
三、按要求写句
1、欣欣向荣
①用来形容花草树木的什么:
春天来了,大地一派欣欣向荣的景象!②用来比喻事业的 改革开放后,教育战线出现了欣欣向荣的新局面。
2、骄傲
①用来表示褒义的:
身为中国人我感到无比骄傲!五星红旗在奥运会场高高飘扬,中国人都很骄傲。②用来表示贬义的(指不谦虚):
成绩好也不能骄傲,应该保持下去。他是个很有能力的年轻人,但是有点骄傲。
3、“成了” 写成比喻句: 夜幕下,树影摇来摇去,成了幽灵。4.“天空中的小星星” 写成拟人句:
夜空中的小星星眨着眼睛,似乎对你微笑。
5、好像 写成比喻句:
这一朵朵菊花,远看好像一个个色彩鲜艳的绣球。写成不是比喻句的: 李芳好像她的妈妈。
6.妈妈对我说:“我上班去了,你中午在家自己温习功课。”(改成转述句)妈妈对我说,她上班去了,让我中午在家自己温习功课。7.这块地里的菜秧是我种下的。
①(改成反问句)这块地里的菜秧是我种下的吗?
②(改成否定句)这块地里的菜秧不是我种下的。8.我们遇到困难,怎么能退缩呢?(改成陈述句)我们遇到困难,不能退缩。9.这活泼的小孩是我的好朋友。(改成反问句)这活泼的小孩难道不是我的好朋友吗?
10.齐这船舷的菜叶和垃圾填没了这只船和那只船之间的空隙。
改成“把”字句:齐这船舷的菜叶和垃圾把这只船和那只船之间的空隙填没了。
改成“被”字句:这只船和那只船之间的空隙被齐这船舷的菜叶和垃圾填没了。11.一大滴松脂滴下来,正好包住了一个苍蝇可一个蜘蛛。
改成“把”字句:一大滴松脂滴下来,正好把一个苍蝇可一个蜘蛛包住了。
改成“被”字句:一大滴松脂滴下来,一个苍蝇可一个蜘蛛正好被包住了。12.我们祖国的崇山峻岭蕴藏着丰富的煤和石油。(缩句)崇山峻岭蕴藏着煤和石油。
13.我不小心把陈明的飞机模型摔坏了。(改成“被”字句)陈明的飞机模型被我我不小心摔坏了。
14.曹操被周瑜的军队打得丢盔弃甲,狼狈逃窜。(改成“把”字句)周瑜的军队把曹操打得丢盔弃甲,狼狈逃窜。
15.这些北京来的客人水平非常高。(改变词序,改变意思)这些来北京的客人水平非常高。16.我家在市图书管附近住。(改变词序,意思不变)我家住在市图书管附近。
四、把下面的反问句改为陈述句
1、大家都能办到的事,难道我就不能办到吗? 大家都能办到的事,我就一定能办到。
2、雷锋精神怎么会过时呢?
雷锋精神不会过时。
3、知识是无止境的,我们有什么理由骄傲自满,故步自封呢? 知识是无止境的,我们没有理由骄傲自满,故步自封。
4、冬天来了,春天还会远吗? 冬天来了,春天不会远了
五、把下面的陈述句改为反问句
1、这个真实的故事使我深受感动。这个真实的故事怎么不使我深受感动呢?
2、我们不能辜负老师对我们的殷切希望。我们怎么能辜负老师对我们的殷切希望呢?
3、春风吹绿了田野。难道春风没有吹绿了田野吗?
4、是春风吹绿了田野。难道不是春风吹绿了田野吗?
5、我们不能做损人利己的事。我们怎么能做损人利己的事呢?
六、以文明用语的要求,将下列话换个说法
1、喂,妈,今天开学了,快给钱。你好,妈妈,今天开学了,能给钱吗?
2、奶奶,学校号召我们捐款救灾,快给我五元钱。奶奶,学校号召我们捐款救灾,请给我五元钱吧。
3、喂,老头,把锄头借我用一下。你好,老爷爷,请把锄头借我用一下好吗!
4、小红,把窗关一下。小红,请把窗关一下。
七、将下列句子改为第三人称转述
1、贝多芬说:“我是来弹一首曲子给这位姑娘听的。” 贝多芬说,他是来弹一首曲子给这位姑娘听的。
2、小红说:“今天下午学校组织到野外活动,我必须参加。” 小红说,今天下午学校组织到野外活动,她必须参加。
3、蔺相如说:“这块璧有点儿小问题,让我指给您看。” 蔺相如说,这块璧有点儿小问题,让他指给您看。
4、蔺相如说:“秦王若有诚意换璧,我就把璧交给他:“ 蔺相如说,秦王若有诚意换璧,他就把璧交给秦王。
第五篇:java 中常用的方法总结
8月1日
练习:
合理覆盖Cat数据类型的,equals()方法
Cat.java 覆盖 hashCode()返回的整型值是唯一的int hashCode()用法:
一般使用String提供hashCode的编码 +基本数据类型
hashCode 生成原则: 当对象内容一致时,生成的hashCode必须是一样的当对象内容不致时,生成的hashCode必须是唯一的HashtableTest1.java
hashtable 中的key如果是自定义数据类型,那么它必须覆盖equals()和hashCode()//考试 hashCode()ArrayList * Hashtable * 其他的存储方式:
LinkedList //特点:可以删除指定位置数据
练习:
向LinkedList添加:
A B C D
打印出时为: DCBA LinkedListTest.java
练习(MyQueueTest.java):
模拟一个队伍(队列),去买票一个动作
思路: 模拟一个队列(add)模拟出列(removeXXXX)
//先买票的人,先出队列——先入先出
队伍是一个特殊数据结构,特点:FIFO(先入先出)
HashSet //不允许重复元素
集合框架类的特点: Collection 接口是一组允许重复的对象 Set接口继承Collection,但不允许重复使用自己内部的一个排列机制 List接口继承Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。Map接口是一组成对的键——值对象,即所持有的是key—value pairs。Map中不能有重复的key。拥有自己内部机制。在集合框架类中有两大类接口: 5.1 Collection 5.2 Map
注意:集合框架类——容器,容器中存储引用数据类型
继承关系:
接口 实现 历史集合类型
Set HashSet TreeSet
List ArrayList Vector LinkedList Stack
Map HashMap Hashtable TreeMap Properties
集合框架类解决的问题?变长数组操作的效率。
集合框架类的特点:Vector 2 ArrayList * 3 Hashtable * 4 HashSet 5 Properties
集合框架类的使用:声明
private Vector vec;2 构造中实例化
vec = new vector();向容器中添加数据:
vec.add();练习:
FILOTest.java
第一个进来,最后一个出去
FILO------栈
练习:
将Student类作为Hashtable的key StudentHash 1 Student StudentHash(主类)StudentHash.java 8月2日
练习:
使用HashMap进行数据的存储,与遍历
.keySet()//返回key的集合(Set)
.values()//返回value的列表(ArrayList)HashMapTest.java
HashMap与Hashtable的区别:
Hashtable是非同步的(效率高)
HashMap是同步的(效率低)
获得系统java的相关的环境变量:
System.getProperties();//可以返回
Properties数据类型(是Map的子类),内容为系统的全部环境变量
练习:
打印输出系统中全部的环境变量:
//2 了解Properties,还可以与文件系统交互
PropertiesTest.java 思路: Properties p = System….2 遍历p 复习:
java.lang:
String特点
常用构造:
String(byte[] bytes)//将byte型数组转换为字符串
String(char[] ch)//将char型数组转换为字符串
String(char[] value, int offset, int count)
//将char[]转换为字符串,offset从那里开始(0)//count(char.length)个数
常用方法: char charAt(int index)String str = “ABC”;Char ch = str.charAt(0);ch ==A;String concat(String str)//连接字符串==”+”号 boolean equalsIgnoreCase(String anotherString)//忽略大小写比较byte[] getBytes()// 将字符串处理为byte[] int indexOf(String str)//判断字符串所在的索引位置,如果描述的字符串不存在,返回值为-1 int lastIndexOf(String str)//字符串所在的最后一个索引位置,如果描述的字符串不存在,返回值为-1 int length()//返回字符串的长度 String replace(char oldChar,char newChar)//字符串替换 boolean startsWith(String prefix)// 判断字符串的开头,是否有匹配的字符串 10 boolean endsWitn(String prerfix)//判断字符串的结尾,是否有匹配的字符串String substring(int beginIndex, int endIndex)//字符串的截取char[] toCharArray()//将字符串处理为char[] 13 String toLowerCase()//将字符串处理为小写String toUpperCase()//将字符串处理为大写String trim()//除去字符串左右两边的空格StringBuffer //初始化的容量16 构造:
StringBuffer()//初始化容量 16 StringBuffer(10)//初始化容量 10 StringBuffer(String str)方法:
StringBuffer append(float f)// 向StirngBuffer添加内容
int capacity()// 返回容量
int length()// 返回StringBufferInt实际存储长度
StringBuilde(效率高)==StringBuffer 基本数据类型的包装包:
Byte b = new Byte();Int Integer char Character
int a = Integer.parseInt(“11”);System常用的方法:
System.gc();
System.exit(0);//退出java程序,0代表正常退出,非0代表异常退出
System.arraycopy()//数组的拷贝
System.currentTimeMillis()//系统毫秒(1970)
System.getProperties()//系统环境变量
Math 算术类:
Math.abs()// 绝对值
max min
random //1.0----0.0的随机值
round //四舍五入
Runtime // 获得系统运行环境,通常用于java调用
//第三方应用程序(.exe).exec(“ ”)java.util
Date //获得系统时间,不考虑时区
构造:
Date()//获得系统时间
Date(long date)//根据用户传入的系统毫秒获取时间
方法:
toString()格式化日期: java.text.SimpleDateFormat 构造:
SimpleDateFormat(String str)方法:
String format(date)
Calendar //日期,可以考虑时区
固定用法:
Calendar cal = Calendar.getInstance();//时区
TimeZone tz = TimeZone.getTimeZone(“GMT + 8:00”);Calendar cal = Calendar.getInstance(tz);常用的方法:
Date getTime();//返回当前系统时区
int get(int filed);// Calendar.静态变量
Random 构造:
Random()方法:
int nextInt(xxxx)//返回指定范围的随机数字
需要可以变长的数组,可以提高效率
集合框架类:一组相同元素的集合。Vector 构造:
Vector()//无参构造,初始化容量为10 方法:
Boolean add(E e)//向容器中存储数据
Void addElement(E obj)//向容器中存储数据
elements()//为Enumeration提供容器的地址Enumeration //应用于容器元素的遍历
方法:
boolean hasMoreElements()//判断指针是否还有数据
E nextElement()//返回当前的元素,并且指针下移
ArrayList 构造:
ArrayList()//初始化容量 10 方法:
add()
iterator()//为Iterator()提供容器的地址
Iterator: //遍历容器中的元素
方法:
boolean hasNext()// 判断指针是否还有数据
E next()//返回当前的元素,并且指针下移
Vector 与ArrayList的区别:
Vector效率低,线程同步 ArrayList 效率高,线程非同步
Hashtable //存储数据时,通过key,value的方式成对存储
//只要知道key可以一次性操作value 方法:
put(key,value)//向Hashtable容器存储数据
elements()//返回Enumeration value的地址
key()//返回Enumeration 提供key的地址
E get(key)//根据表述的key一次获得value remove(Object key)//根据表述的key删除value
Hashtable中key是一个自定义的数据类型,那么这个自定义类型,必须合理覆盖Object;public boolean equals(Object obj)public int hashCode()HashMap(同步)
LinkedList //链表——提供了方便的操作方法
方法:
addFirst()removeFirst()addLast()removeLast()继承关系:
Collection Set-------不允许重复数据List---------允许重复数据
Collection list = new ArrayList();//面向接口
Map
使用官方类库方法:结合面向对象的思想
1.1 这个类的作用
1.2 这个类的构造
1.3 这个类的常用方法一些特殊类的固定用法
8月3日
java.io //为硬盘文件的读,写提供功能
File //在java中就代表磁盘上的一个文件
//它只可以访问这个文件的属性,并且它可以创建,删除文件,但是,它不可以控制文件中的内容
构造:
File(String pathname)示例:声明
File f;构造中初始化
//f代表当前目录下的new.txt f = new File(“new,txt”);3 方法:
boolean createNewFile()//新建一个空文件
boolean delete()//删除这个文件
练习:
在当前目录下创建一个新的文件判断这个文件是否存在
1.1 不存在,则创建一个新的文件
1.2存在,则输出这个文件的修改时间
新建项目:IO
新建类:FileTest.java 2 输出文件产相关信息
2.1 这个文件的名字
2.2 这个文件的绝对路径
I/O的基本原理:
流(stream):流是指在计算机的输入输出之间运动的数据序列。是用于I/O编程的抽象概念,表示线性的,顺序的输入和输出的数据流。
流分为两类:
输入流:代表从外设流入计算机的数据序列:输入流:源流(source stream)输出流:代表从计算机流向外设的数据序列:输出流:目的流(sink stream)在java中流的分类:
主体是程序 字节流---------代表传输的数据类型为byte类型,1字节
1.1 InputStream //可以从磁盘中读取文件
1.2 OutputStream //可以向磁盘中的文件写入内容 字符流---------代表传输的数据类型为char类型,2字节
2.1 Reader(输入流):可以从磁盘中读取文件
2.2 Writer(输出流):可以向磁盘中的文件写入内容
使用字节流:
练习:ByteStream中实现文件的写入,读取 使用FileOutputStream 向hello.txt中写入内容“MyFirstOutput” 1.1 FileOutputStream 的构造:
FileOutputStream(File file)
FileOutputStream(File file, Boolean append)
//append参数:为true,将会以追加模式进行写操作
false,将会覆盖原有文件
1.2 方法:
void write(byte[] b)
void close()//释放资源使用FileInputStream()2.1 构造
2.2 方法
int read(byte[] b)
//将读出的内容存储到byte[] 中,并且返回数组的长度
操作资源三大步: 打开
操作(读,写)
关闭
ByteStream.java
练习:使用java实现copy指令:
MyCopy
要求:java MyCopy args1 args2
结果:将args1中的内容copy到args2 思路:
1、从args1中读取内容
2、将读取的内容写入到args2 书写:
1、考虑需要的属性
2、构造初始化属性
3、方法实现copy
int read()//无参read方法 返回byte型数据
int read(byte[ ] b)//返回读取内容的长度
8月5日
字符流:char FileReader 构造:
FileReader(String filename)// 以参数中的文件名,创建输入字符流
FileWriter 练习:
FileRW.java
使用字符流实现文件的读写
注:程序结构参考ByteStream 字符流的特点:
由于字符流在write()实现时,使用了缓冲机制,所以在write()完毕后,必须同步缓冲区。
调用:
flush();或者
close();
System.in //可以接收用户在终端的输入
int read()//返回用户在程序运行过程中的键盘输入,为此输入的ascii码
System.in.read();//程序会阻塞状态,只有当用户输入字符,并且按下“回车键”程序,才会继续运行
ReadTest.java 流链:
目的:
在实际开发中,提高基本的字节流或者字符流的读取效率(读写效率)和更方便的操作机制(除了char,byte,String),还可以操作其他数据类型。
注意:一个程序很少只用一个流类来处理数据,通常都有使用一系列流类叫流链来处理。
字节流: BufferedInputStream BufferdeOutputStream
//特点:为基本的I/O操作,提供缓存区域
//提高字节流的操作效率
BufferedTest.java DataInputStream DataOutputStream
//特点:为各种基本,特殊数据类型提供操作方式
DataTest.java 输入流量
DataSource-àFileInputStream-àBufferedInputStream--àDataInputStream-àProgram 输出流量
Program-à DataOutputStream-à BufferedOutputStream-àFileOutputStream àDatasink 练习:
字符流版本的,MyCopy MyCharCopy.java 流链:
字节流的流链
字符流的流链
BufferedReader BufferedWriter
//提高I/O操作效率
BufferedRW.java
Alt + shift + z //自动写出异常
System.in.read();
System.in //java 中的标准输入流
ReadTest.java 8月6日 将对象存入到文件中(序列化存储)* ObjectSave.java 手工实现步骤:
将User数据类型的构造,封装,进行编写
使用DataxxxStream进行读写;
将User对象的数据进行拆分(setxxx,getxxx)序列化存储实现:
ObjectInputStream ObjectOutputStream //对于对象的读和写
方法:
Object readObject()
void writeObject(Object obj)
注意:读或写的对象,必须实现Serializable(序列化)接口
示例:
//这个对象支持了序列化存储 //可以使用readObject()|| writeObject()方法了
class User implements Serializable { }
ObjectSerializable.java
回顾:java.io File //特点:代表磁盘的文件,只可以访问文件的属性流的概念:只要计算机中线性的,顺序的数据输入,输出
输入流:
输出流:
java的角度:
字节流:
InputStream //读取内容
OutputStream //写入内容
特点:基本数据类型byte 字符流:
Writer: Reader:
特点:基本数据类型char 3 字节流和字符流的应用:
字节流:
FileInputStream FileOutputStream 字符流:
FileWriter FileReader 流链(包装流)
特点:
增加I/O的操作效率。(分配了一段内存-----缓冲区)
提供名种基本数据类型和特殊类型的操作机制
字节流: BufferedInputStream
BufferedOutputStream //特点:提高I/O操作效率DataInputStream
DataOutputStream //特点:提供基本,特殊类型操作
字符流: BufferedReader //特点:readLine();BufferedWriter 5 序列化存储:
特点:将对象进行存储,读取ObjectInputStream ObjectOutputStream
注意:要序列化存储对象必须实现:Serializable 接口 大练习:
使用
java.lang java.util java.io
实现一个用户的管理查询系统
功能:添加用户浏览用户删除用户查找用户退出程序
见UserManager文件夹
解决数据的累加问题: 程序一运行的时候,就将文件中的所有数据保存在内存中。
EOFException //文件指针已经到末尾时,还要继续读取
User user
User =(User)is.readObject();While(user!= null){
array.add(user);ois.readObject();}
ArrayList:
int size()//可以返回ArrayList中的元素个数
E get(int index)//根据用户传入的索引值,返回所存储数据
remove(int index)//删除指定位置的元素