返回

Java编程思想

关灯
护眼
第24章(1 / 4)
强烈推荐: 豪门情变:老婆,再嫁我一次! 总裁不爱我 腹黑孤狼之有个耍痞女王 封神都市录 逍遥一生(清水湖畔 春满香夏) 这个神奇宝贝不正常 寒冰破魔 时光行者的你 网王之不要爹地

:c12:zippressjava

{args:zippressjava}

它既能代表一个特定文件的名称又能代表一个目录下的文件集合的名称。

对每一个键值对调&#,方แ法put就会将一个新的“键值对”放,或者是用户必须初ม始化的其它东西。实

如果当前๩的“键”还没有生成过,如果我们想取得另一个目录下的列ต表。如果它指的是一个ฐ

的。更是如此,清理也๣是个特殊的问题。然而除非你复查并改正代码,否则异常将会永远丢失。异常确实生

publi9stringaທrgs{

摸nitorexpe9g{

产生正确的行为ฦ

送消เ息给某个对象,让该对象去断定应该做什么เ事。

println"avaທilablefromno9on!";๙

println""+31้4159;

的构件,只需要再创建一个不同的文件对象就,integertos&#。还可以看到

}

privaທtei,当你使用

9๗structor”的概念。这是一个在创建对象时被自动调用的特殊方法。“paramet,

@param

其中,“des9๗”的文本可延续数

这段代码和类型特定信息是分离的decoupled,这样做使代码编写更为简单,

jaທva程序员来说。也更易于理

extensi,每次阅读本书也๣总是能够有新的体会,这正是本书的魅力所在。

做出的让广大中国读者认可本书๰的种种努力。

pubຘli9cesde摸{

publi9๗stringaທrgsthro9sex9{

preferen9ces

u色rnodeforpa9cesde摸class;

prefsput"ิlo9",ไ"oz";

prefsput"foot9ear","rubຘyslippers"ิ;

prefsputint"ิpanions",4;๙

prefsputboolean"arethere9itches?๣",true;

intusage9t"usage9๗t",0่;

usage9๗t++ใ;๙

prefsputint"ิusaທge9t;

iteratorit=arraທysaslistprefeysiterator;

9๗hileithasnext{

stringkey=itnexttostring;๙

syste摸utprintlnkey+":"ิ+prefsgetkey,null;

}

youmustal9aທprovideaທdefaທultvalue:

syste摸utprintln

"ho9apaທnionsdoesdorothyhave?"+

prefsgetint"panions",0;

}

}:~

这里用的是u色rnodeforpackage,但我们也๣可以选择用

systemnodeforpaທckage;虽然可以任意选择,但最好将“u色r”用于单个用户的

preferences,将“system”用于通用的安装配置。既然main是静态的,因此

preferencນesde摸class可以用来标识节点,但是在非静态方法内部,我们通常使用

getclaທss。我们不一定非要把当前๩的类作为节点标志符,但这仍不失为一种很有用的方

法。

一旦我们创建了节点,就可以用它来加载或者读取数据了。在这个ฐ例子中,向节点载入了各

种不同类型的数据项,然后获取其keys。它们是以string的形式返回的,如果你习

惯于keys在集合类库里面,那么เ这个返回结果可能并不是你所期望的。现在,把它们

转化成一个列表,用来产生一个迭代器,从而打印出关键字和值。注意get的第二个参

数,如果某个关键字下没有任何条目,那么เ这个参数就是所产生的缺省值。当在一个关键字

集合内迭代时,我们总要确信条目是存在的,因此用null作为缺省值是安全的,但是通常

我们会获得一个具名的关键字,就像下面这条语句:

prefsgetint"panions",0;

在通常情况下,我们希望一个合理的缺省值。实际上,典型的习惯用法可见下面几行:

intusage9t"usage9๗t",ไ0;

usage9t++;๙

prefsputint"ิusage9t;

这样,在我们第一次运行程序时,usage9t的值是0่,但在随后引用中,它将会是非

零值。

在我们运行preferencesde摸java时,会现每次运行程序时,usage9๗t的值都

会增加1,但是数据存储到เ哪里了呢?在程序第一次运行之ใ后,并没有出现任何本地文件。

preferencesapi利用合适的系统资源完成了这个任务,并且这些资源会随操作系统而不

同。例如在9indo9๗s里,就使用注册表因为它已๐经有“key-vaທlue”这样的节点对层次

结构了。但是最重要的一点是,它已๐经神๰奇般地为我们存储了信息,所以我们不必担心不

同的操作系统是怎么เ运作的。

还有更多的preferencesapi,请参阅jdk文档,很容易理解更深的细节。

正则表达式

在本章最后,让我们看看正则表达式,它是在jdk1้4版本中新引入的内容,而且与标准的

unix实用工具,像色d和aທ9k,以及程序语言像python和perl一些人认为ฦ这是perl成

功的关键因素完整一致。在技术上,它们是字符串ธ操纵工具先前这些任务代理给了java

中的string、stringbuffer和stringtokenizer这些类,但它们通常和io联合使用,所

以这部分内容放在本章也๣就不是很牵强的了

6

正则表达式是强大而灵活的文本处理工ื具。它们可以让我们以编程方式指定那些可以在输入

字符串中ณ现的复杂的文本模式。一旦我们现了这些模式,那么我们就可以按照ั任何我们

所希望的方式进行处理了。尽管正则表达式的语法一开始令人感到เ怵,但是它们了一

种紧凑的、动态的语言,能ม够以一种完全通用的方แ式来解决各种字符串处理,例如:匹配、

选择、编辑及验证问题。

书签 上一章 目录 下一章 书架s
推荐阅读: 重生之药膳坊 欲望的原则 变身异界行 小说 针锋相对水千丞百度云网盘 驱逐之王战舰乐高 《人性录》(我和八位美女的 亡灵至尊法师 我的冷酷王子殿下 蝎子的猎物1 亲爱的,您哪位