2 Şubat 2020 Pazar

String Sıralama - Sorting String

Giriş
Seçeneklerimiz şöyle
-String.compareToIgnoreCase(String): case insensitive variant of compareTo)
-String.CASE_INSENSITIVE_ORDER: Comparator that has the same ordering as compareToIgnoreCase
-or, for more advanced options like locale-specific rules, java.text.Collator and java.text.RuleBasedCollator
1. String Sınıfı compareToIgnoreCase metodu
Şöyle yaparız.
Comparator.comparing(Employee::getName, String::compareToIgnoreCase)
2. String Sınıfı CASE_INSENSITIVE_ORDER Alanı
Bir Comparator nesnesidir. Şöyle yaparız.
Comparator.comparing(Employee::getName, String.CASE_INSENSITIVE_ORDER)
3. Collator Sınıfı
Şöyle yaparız.
Collator collator = Collator.getInstance(Locale.US);
collator.setStrength(Collator.PRIMARY);
listOfEmployees.sort(Comparator.comparing(Employee::getName, collator.reversed()));
Kullanmak için şöyle yaparız.
if (collator.compare("abc", "ABC") == 0) {
    System.out.println("Strings are equivalent");
}
4. RuleBasedCollator 
Elimizde şöyle bir kod olsun
String rules = "< c,C < b,B";
Açıklaması şöyle.
The above rule is decoded as that both uppercase and lowercase c's are to appear before both uppercase and lowercase B's when comparing strings.
Örnek
Şöyle yaparız.
String customRules = "<A<a<B<b<C<c<D<d<E<e<F<f<G<g<H<h<I<i<J<j<K<k<L<l<M<m<N<n<O<o<P<p
  <Q<q<R<r<S<s<T<t<U<u<V<v<X<x<Y<y<Z<z";
RuleBasedCollator myRuleBasedCollator = new RuleBasedCollator(customRules);
Collections.sort(listOfColors,myRuleBasedCollator);
System.out.println(listOfColors);

Hiç yorum yok:

Yorum Gönder