根据ASCII值平均两个字符

时间:2016-12-03 08:48:35

标签: java

我是java编程的新手。我在这里如何使用char方法时遇到问题。您在char方法中返回什么来获取主体中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));
}

2 个答案:

答案 0 :(得分:1)

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

无论如何你可以做到

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

请注意,由于除以int literal 2 ,您需要再次将结果转换为char ..

答案 1 :(得分:0)

在Java中,char值自动被类型化为int类型。

由于您已经拥有average(int i,int j),因此您无需撰写任何average(char first,char second)

因此,当您致电average(first,second))时,将会调用带int个参数的方法,即average(int i,int j)