将参数变量从int转换为char,反之亦然

时间:2014-05-01 05:02:29

标签: java parameters casting char int

如果我在调用东西时将char作为参数传递,它会编译吗?是否会传递一个int而不是一个char工作?我知道你可以从int转换为char但不应该是明确的吗?

我有一个类Test,其中一个返回类型为String的静态方法,其中char a和int x为参数。

public class Test {
    public static String stuff(char a, int x)
    {
        char b = (char)x; String s = "";
        while (a<b)
        s+=a+b--;
        return s;
    }
    public static void main(String args[])
    {
         System.out.println(stuff('a','d'));
    }
}

2 个答案:

答案 0 :(得分:0)

是的,传递一个字符是合法的,但不是好的做法。

答案 1 :(得分:0)

向上(隐式) -

  

字节 - &gt;短 - &gt; int - &gt;长 - &gt;浮动 - &gt;双

向下浇铸(显式) -

  

double - &gt;浮动 - &gt;长 - &gt;内部 - &GT;短期&GT;字节

int占用4个字节的内存,char占用2个字节的内存,因此需要显式转换。 int可以取负值,char只取正值。

      public class Test {
      public static void main(String args[]) { 
      int i = 78;     // 4 bytes 
      // char ch = i;   // error, 4 bytes to 2 bytes
      char ch = (char) i; // int is type converted to char
      System.out.println(ch); // prints N (78 ASCII value for N)

      System.out.println("Max int:"+Integer.SIZE+"bit");
      System.out.println("Max char:"+Character.SIZE+"bit");

       }
     }