比尔盖茨写的两行神奇的代码,就两行,据说难倒了一批程序猿~
比尔盖茨在自传中提到了一个问题:
当初他用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与stringbuilder的区别