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
最后栈情况:[]最后栈变成空,我想这正是作者的意图。如果按照翻译的那个来,最后栈里就剩一个“-”号,呵呵
我现在大二,水平有限,所有不怎么适合读英文原著,等我大学毕业了,我想,这本翻译书应该是我读的最后一本翻译的书了,以后要读
就读原著,要么就读国人写的,翻译这么伟大的一本书,居然一条题目上有两处错误,实在不可容忍