In meinem MainActivity ich diese Zeilen Code haben:Java Strings Objekt in Arraylist
//data.getFirstUserInput()-1 is equal to user input.
deck.setCardNumberEmpty(data.getFirstUserInput()-1);
System.out.println("\n Cards on table");
ArrayList<Deck> deck= deck.getCards();
Collections.sort(cards);
for (Deckc: deck
System.out.print((format("%10s","\033[F[ " + c.getOneSpecificNumber())+ " ]"));}
Dies druckt meine zufällige Kartennummern aus. Aber das Problem ist, sie sind nicht numerisch sortiert,
Eine Idee, was ich tun kann?
Karte Klasse
public class Card {
private String cardLetter;
private String cardNumber;
private String nullValue;
public Card(String cardLetter, String cardNumber, String nullValue){
this.cardLetter = cardLetter;
this.cardNumber = cardNumber;
this.nullValue = nullValue;
}
public String getOneSpecificNumber() { return cardNumber;}
public void setCardNumber(String x){ cardNumber = x; }
private ArrayList<Deck> deck = new ArrayList();
public Deck(){
char A = 'A';
int repeats = 2, numOfCards = 8;
for (int i = 0; i<numOfCards;i++){
for (int j = 0; j<repeats; j++){
cards.add(new Card((char) (A + i) + "",i+1,""));
}
}
}
public int compareTo (Karte c) { return this.cardNumber - c.cardNumber; } Ich bin mir nicht sicher, was dieses Stück Code tut, aber es gibt mir einen Fehler. „Bad Operandentypen für binären operator'-‘ ersten Typen: String zweiter Typ: String – user3506
Exception in thread "main" java.lang.NumberFormatException: Für Eingabestring: "" Jede Idee, warum ich diesen Fehler bekommen? Versucht über die Annotation, aber es ist das gleiche Problem – user3506
@ user3506 Sie haben 'null' oder leere Werte in' cardNumber' .Fügen Sie eine Prüfung, um eine Ausnahme zu verhindern.Ich habe die Antwort mit den 'StringUtils' aktualisiert. Entscheiden Sie die Reihenfolge richtig in solchen Fällen. – user2004685