Chcę mieć tabelę samogłosek z diacritics, ale nie chcę ręcznie wyszukiwać tabel symboli.Jak generować automatycznie diakrytycznie tabelę samogłosek?
Czy można wygenerować tę tabelę, przekraczając listę samogłosek i listę diacritics w niektórych z następujących języków: Java, PHP, Wolfram Mathematica, .NET i tak dalej?
Potrzebuję znaków (Unicode) jako wynik.
Java Rozwiązanie
Okazało się, że istnieje specjalna funkcja Unicode to: http://en.wikipedia.org/wiki/Unicode_normalization
Java wspiera go od 1,6 http://docs.oracle.com/javase/6/docs/api/java/text/Normalizer.html
So, przykładowy kod jest:
public static void main(String[] args) {
String vowels = "aeiou";
char[] diacritics = {'\u0304', '\u0301', '\u0300', '\u030C'};
StringBuilder sb = new StringBuilder();
for(int v=0; v<vowels.length(); ++v) {
for(int d=0; d<diacritics.length; ++d) {
sb.append(vowels.charAt(v));
sb.append(diacritics[d]);
sb.append(' ');
}
sb.append(vowels.charAt(v));
sb.append('\n');
}
String ans = Normalizer.normalize(sb.toString(), Normalizer.Form.NFC);
JOptionPane.showMessageDialog(null, ans);
}
Tzn. po prostu łączymy znaki diakrytyczne po samogłoskach, a następnie stosujemy normalizację do ciągu znaków.
można spróbować wydobyć informacje z http://unicode.org/Public/UNIDATA/NamesList.txt Zakładam, że chcą tylko litery rzymskie. Wszystko, co pasuje do LATIN MAŁEJ | LITERA KAPITAŁOWEGO A | E | I | O | U Z powinno być trafne. Nie wiem, jak solidne to jest i jeśli chcesz takich rzeczy jak ø. Pamiętaj też, że Mathematica nie obsługuje poprawnie Unicode poza podstawową płaszczyzną wielojęzyczną: http://stackoverflow.com/questions/5597013/reading-an-utf-8-encoded-text-file-in-mathematica – Szabolcs
Co dalej? o rzeczach takich jak ... Czy uważasz to za samogłoskę (z pewnością jest to po norwesku), czy nie? – Szabolcs