public class NumAdd {
public static void main(String[] args) {
// TODO Auto-generated method stub
Vector<Integer> v = new Vector<Integer>();
System.out.println("请输入:");
while (true) {
int b = 0;
try {
b = System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (b == '\r' || b == '\n') {
break;
} else {
int num = b - '0'; // 数字字符对应的整数
v.addElement(new Integer(num));
}
}
int sum = 0;
Enumeration<Integer> net = v.elements();
while (net.hasMoreElements()) {
Integer ind = (Integer) net.nextElement();
sum += ind.intValue();
}
System.out.println(sum);
}
}作者: 匿名 时间: 2011-8-18 18:39
我列出几个关键的店给你说明下吧
while (true) { //代表无限执行循环,除非在循环体内执行break 语句它才会停止
b = System.in.read(); //给b复制,不过是从键盘手动输入
if (b == '\r' || b == '\n') { //输入这\r或者\n结束循环
break;
} else {
int num = b - '0'; // 数字字符对应的整数
v.addElement(new Integer(num)); //将num加入集合
}
/***
下面的这段就是将你输入集合的值 使用遍历的形式输出
int sum = 0;
Enumeration<Integer> net = v.elements();
while (net.hasMoreElements()) {
Integer ind = (Integer) net.nextElement();
sum += ind.intValue();
}
System.out.println(sum);作者: 匿名 时间: 2011-8-18 18:41
第三行 纠正下 ----------->给b赋值作者: 匿名 时间: 2011-8-18 19:30
打印出的结果,我现在不太明白了。
请输入:
a
49
结果怎么得出的。作者: 匿名 时间: 2011-8-18 19:56
字符串相减 值得是ascII对应的值 a对应的值是97 '0'对应的是48 97-48=49
我给你一份ASCii的代码吧作者: 匿名 时间: 2011-8-18 19:57
0 32 [空格] 64 @ 96 `
1 33 ! 65 A 97 a
2 34 " 66 B 98 b
3 35 # 67 C 99 c
4 36 $ 68 D 100 d
5 37 % 69 E 101 e
6 38 & 70 F 102 f
7 39 ' 71 G 103 g
8 ** 40 ( 72 H 104 h
9 ** 41 ) 73 I 105 i
10 ** 42 * 74 J 106 j
11 43 + 75 K 107 k
12 44 , 76 L 108 l
13 ** 45 - 77 M 109 m
14
46 . 78 N 110 n
15 47 / 79 O 111 o
16 48 0 80 P 112 p
17 49 1 81 Q 113 q
18 50 2 82 R 114 r
19 51 3 83 S 115 s
20 52 4 84 T 116 t
21 53 5 85 U 117 u
22 54 6 86 V 118 v
23 55 7 87 W 119 w
24 56 8 88 X 120 x
25 57 9 89 Y 121 y
26 58 : 90 Z 122 z
27 59 ; 91 [ 123 {
28 60 < 92 \ 124 |