ą - > a, ć - > c, ř - > r, š - > s, á - > a,

Odpowiedz Nowy wątek
2006-11-14 22:14

Rejestracja: 13 lat temu

Ostatnio: 13 lat temu

0

Czy ktoś zna może jakąś uniwersalną metodę (funkcję) w C#, która w podanym string-u zamieni wszystkie znaki narodowe na ich odpowiedniki "bez ogonków". Chodzi tu nie tylko o polskie znaki, ale literki "z ogonkami" dla wszystkich języków Europy Wschodniej i Środkowej (np. czeski, węgierski, itp).

Nie wchodzi w grę oczywiście rozwiązanie z zamianą po kolei wszystkich znaków:
str = str.Replace('ą' , 'a).Replace('ć' , 'c')...
choćby ze względu na to że trudno byłoby wyspecyfikować pełną tablicę wszystkich znaków narodowych dla języków Europy Wschodniej i Środkowej.

Pozostało 580 znaków

2006-11-14 22:56

Rejestracja: 15 lat temu

Ostatnio: 1 tydzień temu

Lokalizacja: Gdańsk

0

nie jest to mozliwe bo liczba kodowan znaków moze byc wieksza od liczby narodowości niestety :/

Pozostało 580 znaków

2006-11-16 21:10

Rejestracja: 13 lat temu

Ostatnio: 13 lat temu

0

Dzięki za odpowiedź.

Zakładam, że znaki będę miał zawsze kodowane w Win1250, ale mimo to obawiam się że taka funkcjonalność nie jest dostępna we Framework-u (nawet .NET 2.0).
Cóż.... pozostaje napisanie funkcji, króra będzie wykonywała szereg zamian ą -> a, ć -> c, ...
Na szczęście nie powoduje to szczególnego narzutu czasowego (sprawdziłem na przykładzie tablicy 50000 string-ów - każdy po 30 znaków - trwało to jakieś 200 ms dla alfabetu czeskiego, a tam ilość znaków narodowych jest największa).

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0