题目是这样子的:
 将对应的数字字符(如’1’、’4’等)转换为对应数字(如1、4)的方法,如果不能转换,则返回-1。测试数据:’5’、’a’、’-‘。
但是有个人定义方法的时候;
public int changechar(char a)
{
if(a>='0' && a<='9')
 return(a-48);
else
 return(-1);
}int 和 char 明显不匹配,但是这个方法却能运行成功,我看了书,我觉得 要么都是int 要么都是char ,不可以混用的。 我也不是很明白 初学Java。

解决方案 »

  1.   

    class charchan
    {
    public int changechar(char a)
    {
    if(a>='0' && a<='9')
     return(a-48);
    else
     return(-1);
    }
    public static void main(String args[])
    {
    charchan abc=new charchan();
    System.out.println(abc.changechar('5'));
    }

      

  2.   

    java里char、byte、short本质都是int
      

  3.   

    package com;public class Test1 {

    public int Charchange(int a)
    {
    char a1=b';
    char c=a1-48;
    if(c>=0&&c<=9)

    {
    System.out.println(c);
    return c;
    }
    else 
    return (-1);
    }}我是楼主 帮我该下错  就是刚才这个题目
      

  4.   

    因为在ascii码里,'0'~'9'是按顺序排列的,因此'0'~'9'转换为0~9,只需减去'0'即可int num = ch - '0';
    if(num < 0 || num > 9)
       num = -1;
    return num;
      

  5.   

    实际上就是问cha 到底是个什么东东
      

  6.   

    0-9的ascii值 48-49    char与char比较的是  ascii的值
    char与int运算的是  ascii的值   
      

  7.   

    因为参数是一个字符,其实是他的unicode编码,字母和数字的和ASCII编码一样,数字的是编码范围48-57,用字符a减去48(0的编码)得到的就是该字符对应的数字。
      

  8.   

    char 的内存表示就是整数,所以那种写法是允许的
      

  9.   

    java.lang.Character.digit('a',10);public static int digit(char ch, int radix)    Returns the numeric value of the character ch in the specified radix.