Например, 4C означает «четверка треф».
Я попробовал использовать код ниже, чтобы упорядочить их с примером северного игрока, вот так
Код: Выделить всё
4H 5H 8C 8D 9H 9D AC 6S 5D 6D KD 10C AD
Код: Выделить всё
8C AC 10C 5D 6D 8D 9D AD KD 4H 5H 9H 6S
Код: Выделить всё
8C 10C AC 5D 6D 8D 9D KD AD 4H 5H 9H 6S
Код: Выделить всё
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
String[] sTest = {"4H", "5H", "8C", "8D", "9H", "9D", "AC", "6S", "5D", "6D", "KD", "10C", "AD" };
for (int i=0;i{
System.out.print(myCard+" ");
});
System.out.println();
}
private static ArrayList sortEnd2Begin(String[] myCards) {
ArrayList myNewCards = new ArrayList();
myNewCards.add(myCards[0]);
for (int i=1;i cB)); // debug
retValue = 1; // ori
} else {
//System.out.println(cA+" = "+cB+" "+(cA == cB)); // debug
retValue = beforeOrAfter(wordA, wordB, iterX+1, iterMax);
}
}
return retValue;
}
}
Функция sortEnd2Begin используется для сортировки массива строк и возврата ArrayList в виде отсортированного массива. функция sortEnd2Begin будет перебирать массив myCards и помещать его в новый список массивов в правильном порядке.
чтобы получить правильный порядок при вставке или добавлении списка массивов, я использую функцию beforeOrAfter для сравнения того, который ниже, равен или выше. если он меньше или равен, он будет вставлен в начало или середину массива. если достигнут конец списка массивов, он добавит значение.
функция beforeOrAfter будет сравнивать символы с символами от конца слова, чтобы определить, какое слово равно, низшего или высшего порядка на основе таблицы ASCII. Функция beforeOrAfter будет рекурсивно работать до тех пор, пока не будет достигнута минимальная длина слова, и определит (возвращаемое значение) -1 (меньше), 0 (равно) или 1 (больше).
функции sortEnd2Begin и beforeOrAfter работают аналогично сортировка имени файла в файловом менеджере, но в обратном порядке.
Подробнее здесь: https://stackoverflow.com/questions/787 ... ce-in-java