2016-12-03 29 views
1

我是java编程的新手。我在这里如何使用方法char有问题。你在char方法中返回什么来获得主体中ASCII值的平均值?谢谢!根据它们的ASCII值求平均两个字符

public static int average(int i,int j) 
{ 
    return (i + j)/2; 
} 

public static double average(double a,double b) 
{ 
    return (a + b)/2; 
} 

public static char average(char first,char second) 
{ 
    return ?; 
} 

public static void main(String[] args) 
{ 
    char first = 'a', second = 'b'; 
    int i = 5, j = 12; 
    double a = 5.5, b = 8.5; 

    System.out.println("Average of (x,y) is : " + average(first,second)); 
    System.out.println("Average of (a,b) is : " + average(a,b)); 
    System.out.println("Average of (i,j) is : " + average(i,j)); 
} 
+1

一个字符是一个数字,就像一个int 。 –

+0

试试这个答案: http://stackoverflow.com/questions/19388037/converting-characters-to-integers-in-java#answer-19388099 – vvwccgz4lh

回答

1

字符在最后整数,所以平均字符没有多大意义,因为结果将再次为字符,即考虑这种情况: 'a'和'b'之间的平均值是多少? a用97表示,b用98表示,ave = 97.5,但97.5没有char值,事实上,它将被舍入为int,再次指向97,所以'a'和'b'的平均值为'a' ,有点奇怪是不是?

反正你可以做

public static char average(char first,char second) 
{ 
    return (char) ( (first + second)/2); 
} 

注意,因为通过INT文字将你需要把结果再次炭..

0

在Java中,char值自动类型强制转换为int类型。

因为您已经有average(int i,int j),您不需要编写任何average(char first,char second)

因此,当您拨打average(first,second))时,将调用参数为int参数的方法,即average(int i,int j)