Quiero tener la tabla de vocales con diacritics, pero no quiero buscar tablas de símbolos manualmente.¿Cómo generar tablas vocálica diacritizadas automáticamente?
¿Es posible generar esta tabla cruzando la lista de vocales y la lista de diacritics en algunos de los siguientes lenguajes: Java, PHP, Wolfram Mathematica, lenguajes .NET, etc.
Necesito tener caracteres (unicode) como salida.
Java Solución
he encontrado que hay una característica Unicode especial para esto: http://en.wikipedia.org/wiki/Unicode_normalization
Java soporta desde 1.6 http://docs.oracle.com/javase/6/docs/api/java/text/Normalizer.html
Por lo tanto, el código de ejemplo es:
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 simplemente colocamos signos diacríticos combinados después de las vocales y luego aplicamos la normalización a la cuerda.
Usted puede tratar de extraer la información de http://unicode.org/Public/UNIDATA/NamesList.txt Asumo solo deseas letras romanas. Cualquier cosa que coincida con LETIN SMALL | MAYÚSCULA LETRA A | E | I | O | U CON debe ser relevante. No sé cuán robusto es esto y si quieres cosas como ø. Además, tenga en cuenta que Mathematica no admite adecuadamente Unicode fuera del plano multilingüe básico: http://stackoverflow.com/questions/5597013/reading-an-utf-8-encoded-text-file-in-mathematica – Szabolcs
Además, ¿qué sobre cosas como æ? ¿Lo considera una vocal (ciertamente está en noruego) o no? – Szabolcs