我发现《java编程思想第四版》一条题目两处错误,无法容忍。。

caofeng891102 2010-01-31 10:08:54
P231,
练习15:栈在编程语言中经常用来对表达式求值。请使用net.mndview.util.Stack对下面的表达式求值,其中“+”表示“将后面的字母压进栈”,而“-”表示“弹出栈顶字母并打印它”:
"+U+n+c---+e+r+t---+a-+i-+n+t+y---+-+r+u--+l+e+s---"



我一看这题目,觉得这题目练练手不错,但是一看net.mndview.util.Stack,把这个翻译错了,明明是net.mindview.util.Stack 我说算了,再往下看,“+-+”大家一定会觉得奇怪,“+”后面什么都能跟,就是不能
跟“-”的因为+后面是把字母压进线,你把-压进去有个屁用啊,所以我查了一下英文原版。。




大家肯定明白了吧,其实+后面是一个空格,请大家好好看看,你可以比较一下其他的-+之间的距离就知道。

经过修改后:

我做了一下题目:
import java.util.Stack;


public class Test1 {

public static void main(String args[]){
Stack<Character> stack=new Stack<Character>();
//定义一个String类型,并初始化
String str="+U+n+c---+e+r+t---+a-+i-+n+t+y---+ -+r+u--+l+e+s---";
for(int i=0;i<str.length();i++){
char c=str.charAt(i);
switch(c){
case '+': stack.push(str.charAt(i+1));i++;break;
case '-': System.out.println("弹出栈顶元素:"+stack.pop());break;
default :break;
}
}
System.out.println("最后栈情况:"+stack);
}
}



输出答案:
弹出栈顶元素:c
弹出栈顶元素:n
弹出栈顶元素:U
弹出栈顶元素:t
弹出栈顶元素:r
弹出栈顶元素:e
弹出栈顶元素:a
弹出栈顶元素:i
弹出栈顶元素:y
弹出栈顶元素:t
弹出栈顶元素:n
弹出栈顶元素:
弹出栈顶元素:u
弹出栈顶元素:r
弹出栈顶元素:s
弹出栈顶元素:e
弹出栈顶元素:l
最后栈情况:[]


最后栈变成空,我想这正是作者的意图。如果按照翻译的那个来,最后栈里就剩一个“-”号,呵呵


我现在大二,水平有限,所有不怎么适合读英文原著,等我大学毕业了,我想,这本翻译书应该是我读的最后一本翻译的书了,以后要读
就读原著,要么就读国人写的,翻译这么伟大的一本书,居然一条题目上有两处错误,实在不可容忍。。。
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoarhoar 2010-12-08
  • 打赏
  • 举报
回复
译著有许许多多错误,原著也有些小错误,刚刚我又发现一处重大错误,联系Bruce Eckel了,不知道能不能回复我,他网站上给的勘误没有我发现的那些问题。
daryzhang 2010-01-31
  • 打赏
  • 举报
回复
英语啊英语 爱你不容易啊
WPooh 2010-01-31
  • 打赏
  • 举报
回复
还是看英文原版。
coolbamboo2008 2010-01-31
  • 打赏
  • 举报
回复
没错,要想学好一定要看原版的
snowmansh 2010-01-31
  • 打赏
  • 举报
回复
那以后就看原版的,原汁原味,还练英文。
caofeng891102 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caofeng891102 的回复:]
刚才题目不全,不好意思
[/Quote]

好像图片不能全都显示,
caofeng891102 2010-01-31
  • 打赏
  • 举报
回复


刚才题目不全,不好意思
24K純帥 2010-01-31
  • 打赏
  • 举报
回复
实在不行看英文的呗。。
dgly1611 2010-01-31
  • 打赏
  • 举报
回复
最近正在啃英文版的,还好有有道词典,,呵呵~~~

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧