#java #android #charsequence
#java #Android #последовательность символов
Вопрос:
У меня есть следующее CharSequence
определенное:
final CharSequence[] videoQualities = {"any", "medium", "high", "hd"};
Я получаю два string
значения: availableQuality
и requestedQuality
. Оба могут содержать значения только из CharSequence
приведенных выше.
Как я могу проверить, availableQuality
больше или равно requestedQuality
?
Комментарии:
1. как можно сравнивать строки как более или менее похожие друг на друга? Вы говорите об их позициях?
2. Что вы имеете в виду под этим «Как я могу проверить, является ли доступное качество больше или равно запрошенному качеству?» Есть ли medium > any etc?
3. @Umair Ashraf, @Java Drinker, да, это то, что я ищу.
Ответ №1:
Попробуйте использовать ArrayList вместо CharSequence[]. Затем вы можете использовать ArrayList.indexOf(), чтобы вернуть числовой индекс, который вы можете использовать для сравнения позиций в ArrayList.
Ответ №2:
Перечисление для спасения.
определите видео качества как перечисление
общедоступное перечисление качества видео { любое, среднее, высокое, hd}
Доступное качество видео; Запрошенное качество видео;
if (доступное качество.порядковый номер() >= Запрошенное качество.порядковый номер()) { …. }
Комментарии:
1. Я думал об этом изначально, но значения OP представляют собой строки, а не целые числа.
2. что вы подразумеваете под OP? вы всегда можете преобразовать строку в перечисление, используя метод valueOf: VideoQualities hd = VideoQualities.valueOf(«hd»)
3. OP = ‘Оригинальное сообщение’ или ‘оригинальный плакат’ (вопрос или человек, который задал вопрос). Кстати, я не думал использовать enum таким образом, спасибо, что научили меня кое-чему ( 1).