2016-03-28 4 views
2

Ich muss die angegebenen Codes verwenden und sie so ändern, dass anstelle der Rückgabe von Ergebnissen durch Vergleich von Scores die eingegebenen Daten mit den Namen in alphabetischer Reihenfolge zurückgegeben werden. HierWie benutzt man compareTo, um Strings zu vergleichen, um Namen in alphabetischer Reihenfolge statt in Scores zu erhalten?

ist die ZIP FILE

Hier sind meine Ergebnisse, wenn ich die GolfApp2-Datei ausführen:

----jGRASP exec: java GolfApp2 

Golfer name (press Enter to end): Annika 
Score: 72 
Golfer name (press Enter to end): Grace 
Score: 75 
Golfer name (press Enter to end): Arnold 
Score: 68 
Golfer name (press Enter to end): Vijay 
Score: 72 
Golfer name (press Enter to end): Christie 
Score: 70 
Golfer name (press Enter to end): 

The final results are 
68: Arnold 
70: Christie 
72: Vijay 
72: Annika 
75: Grace 

----jGRASP: operation complete. 

Hier ist, was ich in der Golfer-Datei geändert haben:

public int compareTo(Golfer other) 
    { 
     if (this.name.compareTo(other.getName())) 
     return -1; 
     else 
     if (this.name == other.name) 
      return 0; 
     else 
      return +1; 
    } 

Ich bin verwirrt auf, wie man es ändert, damit anstelle von ...

public int compareTo(Golfer other) 
    { 
    if (this.score < other.score) 
     return -1; 
    else 
     if (this.score == other.score) 
     return 0; 
     else 
     return +1; 
    } 

... es würde die Namen vergleichen.

+1

'this.name == other.name' ist eine sehr schlechte Art und Weise zu vergleichen' String's nach Wert. Verwenden Sie stattdessen '.equals()'. Noch besser, verwenden Sie 'this.name.compareTo (other.name)' direkt. –

Antwort

3

Ihr Code würde die Kompilierung nicht bestehen, da this.name.compareTo(other.getName()) keine boolean zurückgibt. Ein weiterer Fehler ist der Vergleich der Namen mit this.name == other.name, da String s mit equals verglichen werden muss.

Bringen Sie einfach das Ergebnis von compareTo für die beiden Namen zu nennen (vorausgesetzt, die name Eigenschaft kann null nie sein):

public int compareTo(Golfer other) { 
    return this.name.compareTo(other.getName()); 
} 
+0

Gut. Ich fühle mich jetzt dumm. VIELEN DANK!!!!!!!!! – pyuntae

Verwandte Themen