SORU
23 Temmuz 2010, Cuma


Bir şekilde aksan kurtulmak ve düzenli mektuplar bütün bir dize dönüştürmek için var mı?

Bir aksan ve bu mektupları düzenli apart String.replaceAll() yöntemi kullanarak ve harf değiştirme yapmadan kurtulmak için iyi bir yolu var mı? Örnek:

Giriş: orčpžsíáýd

Çıkış: orcpzsiayd

Rus alfabesi veya Çin gibi aksan ile tüm harfleri gerek yok.

CEVAP
23 Temmuz 2010, Cuma


java.text.Normalizer sizin için bu işlemek için kullanın.

string = Normalizer.normalize(string, Normalizer.Form.NFD);

Bu karakterleri aksan işaretleri farklı olur. O zaman, sadece bir mektup karşı her karakter karşılaştırın ve olmayanları atmak lazım.

string = string.replaceAll("[^\\p{ASCII}]", "");

Eğer metin unicode ise, bunun yerine kullanmanız gerekir:

string = string.replaceAll("\\p{M}", "");

Unicode temel simge ve \\p{M} (küçük) maçlar için maçlar her aksanı.

İşaretçi ve büyük unicode kılavuzu regular-expressions.info GarretWilson için teşekkürler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • KliptOut KwazeeKilla

    KliptOut Kwa

    24 ŞUBAT 2010
  • lilstevie89

    lilstevie89

    25 Mart 2011