Voglio avere la tabella delle vocali con diacritics, ma non voglio cercare le tabelle dei simboli manualmente.Come generare automaticamente la tavola vocalica diacritizzata?
È possibile generare questa tabella incrociando l'elenco di vocali e l'elenco di diacritics in alcune delle seguenti lingue: Java, PHP, Wolfram Mathematica, lingue .NET e così via?
Ho bisogno di avere caratteri (unicode) come output.
Java Solution
ho trovato che ci sono una caratteristica Unicode speciale per questo: http://en.wikipedia.org/wiki/Unicode_normalization
Java supporta dal 1,6 http://docs.oracle.com/javase/6/docs/api/java/text/Normalizer.html
Quindi, il codice di esempio è:
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);
}
Ie semplicemente mettiamo insieme i segni diacritici dopo le vocali e quindi applichiamo la normalizzazione alla stringa.
Si può cercare di estrarre le informazioni dal http://unicode.org/Public/UNIDATA/NamesList.txt presumo desideri solo lettere romane. Qualsiasi cosa corrisponda a LATIN SMALL | CAPITAL LETTER A | E | I | O | U WITH dovrebbe essere rilevante. Non so quanto sia robusto e se vuoi cose come ø. Inoltre, fai attenzione che Mathematica non supporta correttamente Unicode al di fuori del piano multilingue di base: http://stackoverflow.com/questions/5597013/reading-an-utf-8-encoded-text-file-in-mathematica – Szabolcs
Inoltre, che cosa su cose come ...? Lo consideri una vocale (è certamente in norvegese) o no? – Szabolcs