Dim*_*ims 5 .net php java wolfram-mathematica diacritics
我想要带有变音符号的元音表,但不想手动搜索符号表.
是否可以通过以下某些语言中的元音列表和变音符列表生成此表:Java,PHP,Wolfram Mathematica,.NET语言等等?
我需要输入字符(unicode).
Java解决方案
我发现有一个特殊的Unicode功能:http://en.wikipedia.org/wiki/Unicode_normalization
自1.6以来Java支持它http://docs.oracle.com/javase/6/docs/api/java/text/Normalizer.html
所以,示例代码是:
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);
}
Run Code Online (Sandbox Code Playgroud)
即我们只是在元音之后组合变音符号然后对字符串应用标准化.
老实说,我还没有完全破译 Szabolcs 的代码在做什么,但在这种特殊情况下,这似乎使用稍微更少的代码在 Mathematica 中产生相同的结果
\n\ndata = Import["http://unicode.org/Public/UNIDATA/NamesList.txt", "Lines"];\n\ncodes = Cases[data, \n b_String /; StringMatchQ[\n b, ___ ~~ "LATIN " ~~ "CAPITAL" | "SMALL" ~~ " LETTER " ~~ \n "A" | "E" | "I" | "O" | "U" ~~ " WITH " ~~ ___] :> \n FromDigits[StringTake[b, 4], 16], Infinity];\n\nFromCharacterCode[codes]\nRun Code Online (Sandbox Code Playgroud)\n\n产生
\n\n"\xc3\x80\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x98\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb8\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc4\x80\xc4\x81\xc4\x82\xc4\x83\xc4\x84\xc4\x85\xc4\x92\xc4\x93\xc4\x94\xc4\x95\xc4\x96\xc4\x97\xc4\x98\xc4\x99\xc4\x9a\xc4\x9b\xc4\xa8\xc4\xa9\xc4\xaa\xc4\xab\xc4\xac\\\n\xc4\xad\xc4\xae\xc4\xaf\xc4\xb0\xc5\x8c\xc5\x8d\xc5\x8e\xc5\x8f\xc5\x90\xc5\x91\xc5\xa8\xc5\xa9\xc5\xaa\xc5\xab\xc5\xac\xc5\xad\xc5\xae\xc5\xaf\xc5\xb0\xc5\xb1\xc5\xb2\xc5\xb3\xc6\x97\xc6\x9f\xc6\xa0\xc6\xa1\xc6\xaf\xc6\xb0\xc7\x8d\xc7\x8e\xc7\x8f\xc7\x90\xc7\x91\xc7\x92\xc7\x93\xc7\x94\xc7\x95\xc7\x96\xc7\x97\xc7\x98\xc7\x99\xc7\x9a\xc7\x9b\xc7\x9c\xc7\x9e\xc7\x9f\xc7\xa0\xc7\xa1\xc7\xaa\xc7\xab\xc7\xac\xc7\xad\xc7\xba\xc7\xbb\xc7\xbe\xc7\xbf\xc8\x80\xc8\x81\xc8\x82\xc8\x83\xc8\x84\xc8\x85\xc8\x86\xc8\x87\xc8\x88\xc8\x89\xc8\x8a\xc8\x8b\xc8\x8c\xc8\x8d\\\n\xc8\x8e\xc8\x8f\xc8\x94\xc8\x95\xc8\x96\xc8\x97\xc8\xa6\xc8\xa7\xc8\xa8\xc8\xa9\xc8\xaa\xc8\xab\xc8\xac\xc8\xad\xc8\xae\xc8\xaf\xc8\xb0\xc8\xb1\xc8\xba\xc9\x86\xc9\x87\xc9\xa8\xe1\xb6\x8f\xe1\xb6\x92\xe1\xb6\x96\xe1\xb6\x99\xe1\xb8\x80\xe1\xb8\x81\xe1\xb8\x94\xe1\xb8\x95\xe1\xb8\x96\xe1\xb8\x97\xe1\xb8\x98\xe1\xb8\x99\xe1\xb8\x9a\xe1\xb8\x9b\xe1\xb8\x9c\xe1\xb8\x9d\xe1\xb8\xac\xe1\xb8\xad\xe1\xb8\xae\xe1\xb8\xaf\xe1\xb9\x8c\xe1\xb9\x8d\xe1\xb9\x8e\xe1\xb9\x8f\xe1\xb9\x90\xe1\xb9\x91\xe1\xb9\x92\xe1\xb9\x93\xe1\xb9\xb2\xe1\xb9\xb3\xe1\xb9\xb4\xe1\xb9\xb5\xe1\xb9\xb6\xe1\xb9\xb7\xe1\xb9\xb8\xe1\xb9\xb9\xe1\xb9\xba\xe1\xb9\xbb\xe1\xba\x9a\xe1\xba\xa0\xe1\xba\xa1\xe1\xba\xa2\xe1\xba\xa3\xe1\xba\xa4\xe1\xba\xa5\xe1\xba\xa6\xe1\xba\xa7\xe1\xba\xa8\\\n\xe1\xba\xa9\xe1\xba\xaa\xe1\xba\xab\xe1\xba\xac\xe1\xba\xad\xe1\xba\xae\xe1\xba\xaf\xe1\xba\xb0\xe1\xba\xb1\xe1\xba\xb2\xe1\xba\xb3\xe1\xba\xb4\xe1\xba\xb5\xe1\xba\xb6\xe1\xba\xb7\xe1\xba\xb8\xe1\xba\xb9\xe1\xba\xba\xe1\xba\xbb\xe1\xba\xbc\xe1\xba\xbd\xe1\xba\xbe\xe1\xba\xbf\xe1\xbb\x80\xe1\xbb\x81\xe1\xbb\x82\xe1\xbb\x83\xe1\xbb\x84\xe1\xbb\x85\xe1\xbb\x86\xe1\xbb\x87\xe1\xbb\x88\xe1\xbb\x89\xe1\xbb\x8a\xe1\xbb\x8b\xe1\xbb\x8c\xe1\xbb\x8d\xe1\xbb\x8e\xe1\xbb\x8f\xe1\xbb\x90\xe1\xbb\x91\xe1\xbb\x92\xe1\xbb\x93\xe1\xbb\x94\xe1\xbb\x95\xe1\xbb\x96\xe1\xbb\x97\xe1\xbb\x98\xe1\xbb\x99\xe1\xbb\x9a\xe1\xbb\x9b\xe1\xbb\x9c\xe1\xbb\x9d\xe1\xbb\x9e\xe1\xbb\x9f\xe1\xbb\xa0\xe1\xbb\xa1\xe1\xbb\xa2\xe1\xbb\xa3\xe1\xbb\xa4\xe1\xbb\xa5\xe1\xbb\xa6\xe1\xbb\xa7\xe1\xbb\xa8\xe1\xbb\xa9\xe1\xbb\xaa\xe1\xbb\xab\xe1\xbb\xac\xe1\xbb\xad\xe1\xbb\xae\\\n\xe1\xbb\xaf\xe1\xbb\xb0\xe1\xbb\xb1\xe2\xb1\xa5\xe2\xb1\xb8\xe2\xb1\xba\xea\x9d\x8a\xea\x9d\x8b\xea\x9d\x8c\xea\x9d\x8d"\nRun Code Online (Sandbox Code Playgroud)\n