java中ascll值简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:22:43
这是一个输入一串数字后打印出所有数字和的程序
如 输入 123
打印 6
其中用到一个技巧int num=b-'0';
目的是为了减去0的ascII值
为什么要这样啊
详细点啦 ~
是不是类型变了
平时我们做int a=1;
int b=2;
int sum=0;
sum=a+b;
时候也没考虑acill
是不是int型就是数字
第一个例中是String类型?
如果是 我怎么分辨 是类型啊
import java.util.*;
public class TestVector {
public static void main(String[] args) {
int b=0;
Vector v=new Vector();
System.out.println("please enter number:");
while(true)
{
try
{
b=System.in.read();
}
catch(Exception e)
{
e.printStackTrace();
}
if(b=='\r'||b=='\n')
break;
else
{
int num=b-'0';
v.addElement(new Integer(num));
}
}
int sum=0;
Enumeration e=v.elements();
while(e.hasMoreElements())
{
Integer intObj=(Integer

System.in.read()方法从键盘输入的时候是返回的是字符的ASCII码.
int num=b-'0';如果这里不是这样,而是int num=b;那么输出的是字符5的ASCII码53,所以要减去字符0的ASCII码48,才能得到5。

在后面相加的过程时,Integer intObj=(Integer)e.nextElement();语句把字符转变成了int型,所以才能数字的相加,得到最后的结果

int代表的是整数.当然可以相加.

String也可以相加,但是是字符相加,绝不等同于数字相加,比如"1""2""3"就是3个字符,它们相加的结果是"123",而不是6.