2016-12-03 2 views
1

Ich bin neu in Java-Programmierung. Ich habe ein Problem, wie man die Methode für char hier verwendet. Was geben Sie in der char Methode zurück, um den Durchschnitt der ASCII-Werte im Hauptteil zu erhalten? Vielen Dank!Durchschnitt zwei Zeichen basierend auf ihrem ASCII-Wert

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

ein Zeichen ist eine Zahl, wie ein int . –

+0

Versuchen Sie diese Antwort: http://stackoverflow.com/questions/19388037/converting-characters-to-integers-in-java#answer-19388099 – vvwccgz4lh

Antwort

1

Zeichen sind am Ende, also macht das durchschnittliche Zeichen wenig Sinn, da das Ergebnis wieder char sein wird, d. H. In diesem Fall: was ist der Durchschnitt zwischen 'a' und 'b'? a wird mit 97 dargestellt, b mit 98, ave = 97.5, aber für 97.5 gibt es keinen char-Wert, der tatsächlich auf Int gerundet wird, um wieder auf 97 zu zeigen, also ist der Durchschnitt für 'a' und 'b' ist 'a' Irgendwie komisch isnt?

Auf jeden Fall können Sie

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

Notiz tun, indem int da Dividieren wörtlich Sie das Ergebnis werfen müssen wieder auf char ..

0

In Java sind char Werte int Typ automatisch typecasted.

Wie Sie bereits average(int i,int j) haben, müssen Sie keine average(char first,char second) schreiben.

Also, wenn Sie average(first,second)) aufrufen, dann wird die Methode, die int Argumente nehmen, d. H. average(int i,int j) aufgerufen werden.

Verwandte Themen