在QQ群里,有学生(网名:孜孜不断苦心经营)给我留言:

@贺利坚 贺老师,消除多余的空格我不会做。想了半天您提供的答案才弄明白。但是,您的答案有点小问题。

他提供了代码,然后指出:

第一句中的char c,frontIsSpace=0 应该赋值为1.否则如果输入的第一个字符是若干个空格,那么输出结果就会出现一个空格。

接下来,是他测试的截图。

我看了代码和截图,的确是个Bug。

有人帮我找出毛病令我高兴,更让我高兴的,是同学对我所提供参考解答的正确利用,他在运用最有价值的学习方法,在他的菜鸟阶段,有力的啄开厚厚的蛋壳。

我给他留言:

@江上往来人 非常棒的学习方法,我将专门写篇博文记录、推广。你把你的发现,写到我的博文的评论里,作为对其他读者的贡献。感谢

题目、他的留言和我的回复,见《用循环处理文字》。

我想给读者呈现的是,写程序能力训练中可以用这样的策略:

  1. 遇问题首先要先独立思考,运用已经具备的能力和思维解决问题。
  2. 遇到太简单的直接过,遇到值得做的就要做一做,用亲自写出来并得到正确结果去证明“觉得会”。
  3. 一些问题,在当前学习阶段应该会或需要学会,但就是没有思路,努力独立钻一钻,但不要过于执着地一定要自己独自拿下来,在适当时候就可以用“抄之有道”大法了——找合适的参考(在互联网时代,“找到适合的参考”出是重要能力),在参考的提示下明白了,然后自己写出来——要点中的要点是最终“自己写出来”!何为“适当时候”?依各人的心理能力及时间成本承受范围而定,不要坚持太久,以免影响到自己努力学习的好心情。不要上纲上线地认为看了别人的就不是好孩子了,但也不要无原则地将别人的直接搬来。在线找到参考为我所用,在最终“自己写出来”的过程中,让自己具备内在的能力。这是互联网时代的有效工作方式之一。
  4. 本文案例的“境界”高在——他在参考过程中质疑,这是让学习收益陡增。并不一定能找出Bug,在“我看懂了吗?”和“这里会有问题吗?”的反复中,将具备宝贵的思维能力。

关于“抄之有道”,更多可见拙文《菜鸟无畏》的第2小节。