本帖最后由 刘士 于 2012-4-10 01:16 编辑
-38的由来是因为,换行符是 10, ‘0’ 是 48.
v.addElement(new Integer(ch - '0')); //把这个数据包装成Integer,并添加到v集合里去。
这句把他们相减得到了 -38.。。。。
我在尝试帮你把代码修改好。请稍等候。
由于自己犯了一些小错误,所以忙乎了半天才改好。- import java.util.Vector;
- import java.util.Enumeration;
- public class Test03 {
- public static void main(String[] args) {
- Vector v = new Vector();
- Enumeration e;
- int ch = 0;
- int intObj = 0;
- while (true) {
- try {
- ch = System.in.read();
- } catch (Exception ex) {
- ex.printStackTrace();
- }// 从输入流读取一个字节的内容保存到ch
- // switch (ch) {
- // case '\r':
- if (ch == '\r')
- continue; // 如果读取到的是回车符,则不处理
- // case '\n': // 如果读取到的是换行符,则:
- else if (ch == '\n') {
- e = v.elements(); // 返回v集合中的元素的枚举
- int sum = 0;
- while (e.hasMoreElements()) // 判断枚举里是否还有元素
- {
- intObj = ((Integer) e.nextElement()).intValue(); // 取出枚举里的一个元素并转化为int值。
- System.out.print(intObj + ", "); // 打印出来的int值
- sum += intObj; // 把所有的把所有取出来的int值求和
- }
- System.out.println();
- System.out.println("相加的结果为:" + sum);
- } else
- // default: // 如果读取到的是回车符、换行符以外的数据,则:
- v.addElement(new Integer(ch - '0')); // 把这个数据包装成Integer,并添加到v集合里去。
- // }
- }
- }
- }
复制代码123
1, 2, 3,
相加的结果为:6
123
1, 2, 3, 1, 2, 3,
相加的结果为:12
123
1, 2, 3, 1, 2, 3, 1, 2, 3,
相加的结果为:18
123
1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3,
相加的结果为:24
123
1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3,
相加的结果为:30 |