日期:2014-05-17  浏览次数:21179 次

比尔盖茨写的两行神奇的代码,就两行,据说难倒了一批程序猿~
比尔盖茨在自传中提到了一个问题:

当初他用C#做抓取网页关键字的程序的时候写过下面的两行代码:

遵循request—>response—>stream的流程
先发送某个网址的请求,然后接收,转换编码,读取到流中不一样的是下面的两行代码:mystreamreader是返回的html代码流,要做的是对代码流做去空行处理

其他代码直接略过,只写两行:
第一种情况:
while (mystreamreader.ReadLine() != null)
{ mystringbuilder.Append(mystreamreader.ReadLine()); }

第二种情况:
string strl;
while ((strl = mystreamreader.ReadLine()) != null)
{ mystringbuilder.Append(strl); }

然后写了同样的抓取关键字的代码,也就是说,出了这两行之外,其他的都一样!当比尔盖茨输出抓取的关键字的时候,发现一个很奇怪的现象:
对于某些网页,第一种情况只抓取到了部分关键字,而第二种情况不论什么样的网页,都抓取到了所有关键字!

作为程序猿的你,知道问题出在哪里吗?
比尔盖茨 String 编码 readline

------解决方案--------------------
看出来了,第一种情况是多读了一行
------解决方案--------------------
string与stringbuilder的区别