﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-甜菜侯爵</title><link>http://www.blogjava.net/tianzi2009/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 14:05:45 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 14:05:45 GMT</pubDate><ttl>60</ttl><item><title>世界十大最糟糕网站设计（中文翻译）</title><link>http://www.blogjava.net/tianzi2009/archive/2009/11/21/303129.html</link><dc:creator>甜菜侯爵</dc:creator><author>甜菜侯爵</author><pubDate>Sat, 21 Nov 2009 03:04:00 GMT</pubDate><guid>http://www.blogjava.net/tianzi2009/archive/2009/11/21/303129.html</guid><wfw:comment>http://www.blogjava.net/tianzi2009/comments/303129.html</wfw:comment><comments>http://www.blogjava.net/tianzi2009/archive/2009/11/21/303129.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/tianzi2009/comments/commentRss/303129.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tianzi2009/services/trackbacks/303129.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 你曾经打开过真正设计糟糕的网站，糟到你都觉得是自己手太贱么？我就非常“幸运”能看到一坨这种震撼人心的网站。下面这些是这些糟糕网站中最糟糕的。<br>如果你是一个网页设计师，赶快行动起来吧，赶紧给他们发邮件提供服务。<br>如果你的网站不幸在这个名单中，也别觉得窝心，不过您最好还是考虑考虑重新设计一下网站比较好。。。&nbsp;&nbsp;<a href='http://www.blogjava.net/tianzi2009/archive/2009/11/21/303129.html'>阅读全文</a><img src ="http://www.blogjava.net/tianzi2009/aggbug/303129.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tianzi2009/" target="_blank">甜菜侯爵</a> 2009-11-21 11:04 <a href="http://www.blogjava.net/tianzi2009/archive/2009/11/21/303129.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>世界十大最糟糕网页设计</title><link>http://www.blogjava.net/tianzi2009/archive/2009/11/17/302632.html</link><dc:creator>甜菜侯爵</dc:creator><author>甜菜侯爵</author><pubDate>Tue, 17 Nov 2009 01:18:00 GMT</pubDate><guid>http://www.blogjava.net/tianzi2009/archive/2009/11/17/302632.html</guid><wfw:comment>http://www.blogjava.net/tianzi2009/comments/302632.html</wfw:comment><comments>http://www.blogjava.net/tianzi2009/archive/2009/11/17/302632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tianzi2009/comments/commentRss/302632.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tianzi2009/services/trackbacks/302632.html</trackback:ping><description><![CDATA[链接如下：<a href="http://www.blogstorm.co.uk/blog/top-10-worst-websites/"><br />
</a><br />
先放这里，现在没有时间，等有空了把原文翻译了贴过来。<br />
写得还是蛮有意思的。<u><font color="#0000ff">http://www.blogstorm.co.uk/blog/top-10-worst-websites/</font></u><br />
<img src ="http://www.blogjava.net/tianzi2009/aggbug/302632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tianzi2009/" target="_blank">甜菜侯爵</a> 2009-11-17 09:18 <a href="http://www.blogjava.net/tianzi2009/archive/2009/11/17/302632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用正则表达式取出去除html页面中的tags</title><link>http://www.blogjava.net/tianzi2009/archive/2009/11/07/301514.html</link><dc:creator>甜菜侯爵</dc:creator><author>甜菜侯爵</author><pubDate>Fri, 06 Nov 2009 22:19:00 GMT</pubDate><guid>http://www.blogjava.net/tianzi2009/archive/2009/11/07/301514.html</guid><wfw:comment>http://www.blogjava.net/tianzi2009/comments/301514.html</wfw:comment><comments>http://www.blogjava.net/tianzi2009/archive/2009/11/07/301514.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tianzi2009/comments/commentRss/301514.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tianzi2009/services/trackbacks/301514.html</trackback:ping><description><![CDATA[这个就比较简单了，正则式是 &#8220;&lt;[^&gt;]*&gt;&#8221;，其表意为&#8220;以&lt;开头的，后续任意个不为&gt;的字符，并以&gt;结尾的字符串&#8221;<br />
这样做的目的是为了获得所谓plain的文本，方便下一步的处理。<br />
<br />
代码如下：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img id="Codehighlighter1_1_104_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1_104_Open_Text.style.display='none'; Codehighlighter1_1_104_Closed_Image.style.display='inline'; Codehighlighter1_1_104_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1_104_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1_104_Closed_Text.style.display='none'; Codehighlighter1_1_104_Open_Image.style.display='inline'; Codehighlighter1_1_104_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1_104_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_1_104_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">2</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Remove&nbsp;all&nbsp;"&lt;&gt;"&nbsp;tags&nbsp;in&nbsp;the&nbsp;text<br />
</span><span style="color: #008080">3</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;tagText<br />
</span><span style="color: #008080">4</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000">&nbsp;the&nbsp;clean&nbsp;text&nbsp;without&nbsp;tags<br />
</span><span style="color: #008080">5</span><span style="color: #008000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;removeTags(&nbsp;String&nbsp;tagText&nbsp;)<br />
</span><span style="color: #008080">7</span><span style="color: #000000"><img id="Codehighlighter1_151_198_Open_Image" onclick="this.style.display='none'; Codehighlighter1_151_198_Open_Text.style.display='none'; Codehighlighter1_151_198_Closed_Image.style.display='inline'; Codehighlighter1_151_198_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_151_198_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_151_198_Closed_Text.style.display='none'; Codehighlighter1_151_198_Open_Image.style.display='inline'; Codehighlighter1_151_198_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_151_198_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_151_198_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">8</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;tagText.replaceAll(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;[^&gt;]*&gt;</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">);<br />
</span><span style="color: #008080">9</span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
<img src ="http://www.blogjava.net/tianzi2009/aggbug/301514.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tianzi2009/" target="_blank">甜菜侯爵</a> 2009-11-07 06:19 <a href="http://www.blogjava.net/tianzi2009/archive/2009/11/07/301514.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用正则表达式提取网页中的链接</title><link>http://www.blogjava.net/tianzi2009/archive/2009/11/05/301233.html</link><dc:creator>甜菜侯爵</dc:creator><author>甜菜侯爵</author><pubDate>Thu, 05 Nov 2009 03:00:00 GMT</pubDate><guid>http://www.blogjava.net/tianzi2009/archive/2009/11/05/301233.html</guid><wfw:comment>http://www.blogjava.net/tianzi2009/comments/301233.html</wfw:comment><comments>http://www.blogjava.net/tianzi2009/archive/2009/11/05/301233.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tianzi2009/comments/commentRss/301233.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tianzi2009/services/trackbacks/301233.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt; color: #000080; font-family: 微软雅黑">个人感觉效率肯定还能进一步提高。。。。<br />
不过实在是对正则不是太熟悉，只好暂时这样了。<br />
<br style="font-family: " />
代码如下：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_1_49_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1_49_Open_Text.style.display='none'; Codehighlighter1_1_49_Closed_Image.style.display='inline'; Codehighlighter1_1_49_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1_49_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1_49_Closed_Text.style.display='none'; Codehighlighter1_1_49_Open_Image.style.display='inline'; Codehighlighter1_1_49_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1_49_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_1_49_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;The&nbsp;regex&nbsp;for&nbsp;search&nbsp;link&nbsp;with&nbsp;the&nbsp;tag&nbsp;"a"&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;A_REGEX&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;a.*?/a&gt;</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img id="Codehighlighter1_96_146_Open_Image" onclick="this.style.display='none'; Codehighlighter1_96_146_Open_Text.style.display='none'; Codehighlighter1_96_146_Closed_Image.style.display='inline'; Codehighlighter1_96_146_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_96_146_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_96_146_Closed_Text.style.display='none'; Codehighlighter1_96_146_Open_Image.style.display='inline'; Codehighlighter1_96_146_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_96_146_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_96_146_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;The&nbsp;regex&nbsp;for&nbsp;search&nbsp;url&nbsp;with&nbsp;the&nbsp;tag&nbsp;"href"&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;HREF_REGEX&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">href=\</span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">*?</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_202_246_Open_Image" onclick="this.style.display='none'; Codehighlighter1_202_246_Open_Text.style.display='none'; Codehighlighter1_202_246_Closed_Image.style.display='inline'; Codehighlighter1_202_246_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_202_246_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_202_246_Closed_Text.style.display='none'; Codehighlighter1_202_246_Open_Image.style.display='inline'; Codehighlighter1_202_246_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_202_246_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_202_246_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;The&nbsp;pattern&nbsp;for&nbsp;linke&nbsp;with&nbsp;the&nbsp;tag&nbsp;"a"&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Pattern&nbsp;A_PATTERN&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Pattern.compile(A_REGEX);<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img id="Codehighlighter1_310_355_Open_Image" onclick="this.style.display='none'; Codehighlighter1_310_355_Open_Text.style.display='none'; Codehighlighter1_310_355_Closed_Image.style.display='inline'; Codehighlighter1_310_355_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_310_355_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_310_355_Closed_Text.style.display='none'; Codehighlighter1_310_355_Open_Image.style.display='inline'; Codehighlighter1_310_355_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_310_355_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_310_355_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;The&nbsp;pattern&nbsp;for&nbsp;url&nbsp;with&nbsp;the&nbsp;tag&nbsp;"href"&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Pattern&nbsp;HREF_PATTERN&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Pattern.compile(HREF_REGEX);<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img id="Codehighlighter1_425_637_Open_Image" onclick="this.style.display='none'; Codehighlighter1_425_637_Open_Text.style.display='none'; Codehighlighter1_425_637_Closed_Image.style.display='inline'; Codehighlighter1_425_637_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_425_637_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_425_637_Closed_Text.style.display='none'; Codehighlighter1_425_637_Open_Image.style.display='inline'; Codehighlighter1_425_637_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_425_637_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**&nbsp;*/</span><span id="Codehighlighter1_425_637_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
</span><span style="color: #008080">10</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;url&nbsp;address&nbsp;from&nbsp;the&nbsp;url&nbsp;and&nbsp;the&nbsp;content&nbsp;of&nbsp;the&nbsp;url<br />
</span><span style="color: #008080">11</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;url&nbsp;the&nbsp;url&nbsp;need&nbsp;to&nbsp;be&nbsp;get&nbsp;links<br />
</span><span style="color: #008080">12</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@param</span><span style="color: #008000">&nbsp;content&nbsp;the&nbsp;content&nbsp;of&nbsp;the&nbsp;given&nbsp;url<br />
</span><span style="color: #008080">13</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080">@return</span><span style="color: #008000">&nbsp;a&nbsp;list&nbsp;with&nbsp;the&nbsp;url&nbsp;address&nbsp;of&nbsp;the&nbsp;links<br />
</span><span style="color: #008080">14</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;getLinkList(&nbsp;URL&nbsp;url,&nbsp;String&nbsp;content&nbsp;)<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img id="Codehighlighter1_700_1567_Open_Image" onclick="this.style.display='none'; Codehighlighter1_700_1567_Open_Text.style.display='none'; Codehighlighter1_700_1567_Closed_Image.style.display='inline'; Codehighlighter1_700_1567_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_700_1567_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_700_1567_Closed_Text.style.display='none'; Codehighlighter1_700_1567_Open_Image.style.display='inline'; Codehighlighter1_700_1567_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_700_1567_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_700_1567_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">String</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;linkList&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LinkedList</span><span style="color: #000000">&lt;</span><span style="color: #000000">String</span><span style="color: #000000">&gt;</span><span style="color: #000000">();<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Matcher&nbsp;a_matcher&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;A_PATTERN.matcher(content);<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(a_matcher.find())&nbsp;<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img id="Codehighlighter1_840_1545_Open_Image" onclick="this.style.display='none'; Codehighlighter1_840_1545_Open_Text.style.display='none'; Codehighlighter1_840_1545_Closed_Image.style.display='inline'; Codehighlighter1_840_1545_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_840_1545_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_840_1545_Closed_Text.style.display='none'; Codehighlighter1_840_1545_Open_Image.style.display='inline'; Codehighlighter1_840_1545_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_840_1545_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_840_1545_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">JUST&nbsp;FOR&nbsp;TEST!<br />
</span><span style="color: #008080">22</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(a_matcher.group());<br />
</span><span style="color: #008080">23</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">get&nbsp;url&nbsp;address</span><span style="color: #008000"><br />
</span><span style="color: #008080">24</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Matcher&nbsp;myurl&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;HREF_PATTERN.matcher(a_matcher.group());<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(myurl.find())<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img id="Codehighlighter1_1020_1541_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1020_1541_Open_Text.style.display='none'; Codehighlighter1_1020_1541_Closed_Image.style.display='inline'; Codehighlighter1_1020_1541_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1020_1541_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1020_1541_Closed_Text.style.display='none'; Codehighlighter1_1020_1541_Open_Image.style.display='inline'; Codehighlighter1_1020_1541_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1020_1541_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1020_1541_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;urlAddress&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myurl.group().replaceAll(</span><span style="color: #000000">"</span><span style="color: #000000">href=|&gt;|\</span><span style="color: #000000">"</span><span style="color: #000000">|</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">);<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(&nbsp;urlAddress.startsWith(</span><span style="color: #000000">"</span><span style="color: #000000">http</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;)<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img id="Codehighlighter1_1139_1176_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1139_1176_Open_Text.style.display='none'; Codehighlighter1_1139_1176_Closed_Image.style.display='inline'; Codehighlighter1_1139_1176_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1139_1176_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1139_1176_Closed_Text.style.display='none'; Codehighlighter1_1139_1176_Open_Image.style.display='inline'; Codehighlighter1_1139_1176_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1139_1176_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1139_1176_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linkList.add(urlAddress);<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(&nbsp;urlAddress.startsWith(</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;urlAddress.startsWith(</span><span style="color: #000000">"</span><span style="color: #000000">\\</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;)<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img id="Codehighlighter1_1257_1308_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1257_1308_Open_Text.style.display='none'; Codehighlighter1_1257_1308_Closed_Image.style.display='inline'; Codehighlighter1_1257_1308_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1257_1308_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1257_1308_Closed_Text.style.display='none'; Codehighlighter1_1257_1308_Open_Image.style.display='inline'; Codehighlighter1_1257_1308_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1257_1308_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1257_1308_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linkList.add(url.getPath()</span><span style="color: #000000">+</span><span style="color: #000000">urlAddress);<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img id="Codehighlighter1_1323_1536_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1323_1536_Open_Text.style.display='none'; Codehighlighter1_1323_1536_Closed_Image.style.display='inline'; Codehighlighter1_1323_1536_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1323_1536_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1323_1536_Closed_Text.style.display='none'; Codehighlighter1_1323_1536_Open_Image.style.display='inline'; Codehighlighter1_1323_1536_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1323_1536_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1323_1536_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;fullUrl&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url.toString();<br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">the&nbsp;length&nbsp;of&nbsp;the&nbsp;url&nbsp;without&nbsp;the&nbsp;current&nbsp;page</span><span style="color: #008000"><br />
</span><span style="color: #008080">40</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;lastSlash&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fullUrl.lastIndexOf(</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linkList.add(fullUrl.substring(</span><span style="color: #000000">0</span><span style="color: #000000">,lastSlash)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;urlAddress);<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;linkList;<br />
</span><span style="color: #008080">46</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<img src ="http://www.blogjava.net/tianzi2009/aggbug/301233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tianzi2009/" target="_blank">甜菜侯爵</a> 2009-11-05 11:00 <a href="http://www.blogjava.net/tianzi2009/archive/2009/11/05/301233.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>彩票选号后的数学——抽牌算法的实现</title><link>http://www.blogjava.net/tianzi2009/archive/2009/10/28/300000.html</link><dc:creator>甜菜侯爵</dc:creator><author>甜菜侯爵</author><pubDate>Tue, 27 Oct 2009 21:25:00 GMT</pubDate><guid>http://www.blogjava.net/tianzi2009/archive/2009/10/28/300000.html</guid><wfw:comment>http://www.blogjava.net/tianzi2009/comments/300000.html</wfw:comment><comments>http://www.blogjava.net/tianzi2009/archive/2009/10/28/300000.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tianzi2009/comments/commentRss/300000.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tianzi2009/services/trackbacks/300000.html</trackback:ping><description><![CDATA[中国的彩票选号，例如36选7，从36个数字中随机选取7个，这在算法上如何实现呢？ <br />
<br />
最简单的想法就是，每次都从1～36随机选取一个数，一共选7次，不就可以了吗？ <br />
但这样会有一个问题——重复。彩票选号是不能重复的，这也即是说如果你第一次选到的数是10，那么以后再从1～36中选数的时候，10就不能再选了。 <br />
有人可能会说了，这还不好办，如果重复了就废掉，重新再选一个呗。 <br />
这的确是一种解决方法，但是会有很大的问题，比如说5选4吧，前三个都已经选好了是2，3，4，现在取第4个数，这种情况下，取到1和5的几率要比取到2，3，4的几率还要小，也就是说，最坏的情况下，有可能会取很多次2，3，4，扔掉很多次，才最终能取到1或5，完成4个随机数字的选择。显然，这样效率是有很大问题的。 <br />
<br />
下面就介绍一种算法：抽牌算法，来实现这种不允许重复的选号，同时不会出现这种效率上的问题。 <br />
[separator] <br />
抽牌算法的核心思想如下： <br />
以36选7为例 <br />
一副牌，一共36张，抽出其中一张牌，放到一边，再从剩下的牌中抽出第二张，放到一边&#8230;&#8230;以此类推，直到抽完了7张牌为止。 <br />
很显然，这样抽牌是绝对不会重复的。而其核心就是<span style="color: #ff0000">抽出的牌要放到一边</span>。 <br />
<br />
用算法如何实现呢？ <br />
其实很简单，只要能模拟实现<span style="color: #ff0000">把抽出的牌放到一边</span>这个概念就可以了，而模拟实现的方法是非常简单的：把一个数组模拟成一个牌盒，用数组里存的数模拟牌，而<span style="color: #ff0000">抽出的牌放到一边</span>的动作，只需进行一次<span style="color: #ff0000">数组交换</span>，把它放到数组的末尾即可。 <br />
<br />
以36选7为例 <br />
初始化数组，其结构为[1,2.....35,36] <br />
第一轮，从1～36序号中选取随机序号，抽取到序号7， 把序号7和序号36的值交换，7放到数组的末尾，数组结构变成[1...6,36,8......34,35,7] <br />
第二轮，从1～35序号中选取随机序号，抽取到7（这时位置7所存的数就是36了），把36和35交换，数组结构就变成了[1..6,35,8...34,36,7] <br />
第三轮，从1～34序号中选取随机序号，抽取到5，把5和34交换，数组结构变成了[1...4,34,6,35,8....5,36,7] <br />
... <br />
每一次，都把抽出的&#8220;牌&#8221;放到数组的最后，然后再抽牌时，就不抽最后那张牌，这样就实现了<span style="color: #ff0000">抽出的牌放到一边</span>这样一个概念。 <br />
<br />
请看以下Java代码： <br />
<dl class="code">
<dt>Java code
<dd>
<pre>
<div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #000000">
</span><span style="color: #008000">//</span><span style="color: #008000">获得不重复的随机数数组，取值范围[min,max)，个数size</span><span style="color: #008000">
</span><span style="color: #000000">  </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[] getRandomIntWithoutReduplicate( </span><span style="color: #0000ff">int</span><span style="color: #000000"> min, </span><span style="color: #0000ff">int</span><span style="color: #000000"> max, </span><span style="color: #0000ff">int</span><span style="color: #000000"> size )
{
</span><span style="color: #0000ff">int</span><span style="color: #000000">[] result </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[size];</span><span style="color: #008000">//</span><span style="color: #008000">用于存储结果的数组</span><span style="color: #008000">
</span><span style="color: #000000">
</span><span style="color: #0000ff">int</span><span style="color: #000000"> arraySize </span><span style="color: #000000">=</span><span style="color: #000000"> max </span><span style="color: #000000">-</span><span style="color: #000000"> min;</span><span style="color: #008000">//</span><span style="color: #008000">用于放"牌"的数组大小</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #0000ff">int</span><span style="color: #000000">[] intArray </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[arraySize];</span><span style="color: #008000">//</span><span style="color: #008000">用于放"牌"的数组
</span><span style="color: #008000">//</span><span style="color: #008000"> 初始化"牌盒"，比如取值范围是[3,10)则"牌盒"里放的"牌"就是3，4，5，6，7，8，9</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #0000ff">for</span><span style="color: #000000">( </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000"> ; i </span><span style="color: #000000">&lt;</span><span style="color: #000000"> intArray.length ; i</span><span style="color: #000000">++</span><span style="color: #000000"> )
{
intArray[i] </span><span style="color: #000000">=</span><span style="color: #000000"> i </span><span style="color: #000000">+</span><span style="color: #000000"> min;
}
</span><span style="color: #008000">//</span><span style="color: #008000"> 获取不重复的随机数数组</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #0000ff">for</span><span style="color: #000000">( </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000"> ; i </span><span style="color: #000000">&lt;</span><span style="color: #000000"> size ; i</span><span style="color: #000000">++</span><span style="color: #000000"> )
{
</span><span style="color: #0000ff">int</span><span style="color: #000000"> c </span><span style="color: #000000">=</span><span style="color: #000000"> getRandomInt( min, max </span><span style="color: #000000">-</span><span style="color: #000000"> i );</span><span style="color: #008000">//</span><span style="color: #008000">获取到一个随机数</span><span style="color: #008000">
</span><span style="color: #000000">      </span><span style="color: #0000ff">int</span><span style="color: #000000"> index </span><span style="color: #000000">=</span><span style="color: #000000"> c </span><span style="color: #000000">-</span><span style="color: #000000"> min;</span><span style="color: #008000">//</span><span style="color: #008000">这个随机数在"牌盒"里的位置</span><span style="color: #008000">
</span><span style="color: #000000">      swap( intArray, index, arraySize </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000"> i );</span><span style="color: #008000">//</span><span style="color: #008000">将这张"牌"放到"牌盒"的最后面</span><span style="color: #008000">
</span><span style="color: #000000">      result[i] </span><span style="color: #000000">=</span><span style="color: #000000"> intArray[ arraySize </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> </span><span style="color: #000000">-</span><span style="color: #000000"> i ];</span><span style="color: #008000">//</span><span style="color: #008000">把这张"牌"的值扔到存储结果的数组里</span><span style="color: #008000">
</span><span style="color: #000000">    }
</span><span style="color: #0000ff">return</span><span style="color: #000000"> result;
}
</span><span style="color: #008000">//</span><span style="color: #008000">获取随机数，随机数取值范围为[min, max)</span><span style="color: #008000">
</span><span style="color: #000000">  </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> getRandomInt( </span><span style="color: #0000ff">int</span><span style="color: #000000"> min, </span><span style="color: #0000ff">int</span><span style="color: #000000"> max )
{
</span><span style="color: #008000">//</span><span style="color: #008000"> include min, exclude max</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #0000ff">int</span><span style="color: #000000"> result </span><span style="color: #000000">=</span><span style="color: #000000"> min </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> Double( Math.random() </span><span style="color: #000000">*</span><span style="color: #000000"> ( max </span><span style="color: #000000">-</span><span style="color: #000000"> min ) ).intValue();
</span><span style="color: #0000ff">return</span><span style="color: #000000"> result;
}
</span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> swap( </span><span style="color: #0000ff">int</span><span style="color: #000000">[] array, </span><span style="color: #0000ff">int</span><span style="color: #000000"> x, </span><span style="color: #0000ff">int</span><span style="color: #000000"> y )
{</span><span style="color: #008000">//</span><span style="color: #008000">交换数组arry, 序号x与序号y值的顺序</span><span style="color: #008000">
</span><span style="color: #000000">    </span><span style="color: #0000ff">int</span><span style="color: #000000"> temp </span><span style="color: #000000">=</span><span style="color: #000000"> array[x];
array[x] </span><span style="color: #000000">=</span><span style="color: #000000"> array[y];
array[y] </span><span style="color: #000000">=</span><span style="color: #000000"> temp;
}
</span></div>
</pre>
</dd></dl>
 <img src ="http://www.blogjava.net/tianzi2009/aggbug/300000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tianzi2009/" target="_blank">甜菜侯爵</a> 2009-10-28 05:25 <a href="http://www.blogjava.net/tianzi2009/archive/2009/10/28/300000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>