Как сравнить строковые значения CharSequence[]?

#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).