gpt4 book ai didi

java - 如何自动生成变音元音表?

转载 作者:可可西里 更新时间:2023-11-01 14:05:02 34 4
gpt4 key购买 nike

我想要元音表 diacritics ,但不想手动搜索符号表。

是否可以通过交叉元音列表和diacritics列表来生成这个表使用以下某些语言:Java、PHP、Wolfram Mathematica、.NET 语言等等?

我需要将字符 (unicode) 作为输出。

Java 解决方案

我发现有一个特殊的 Unicode 功能:http://en.wikipedia.org/wiki/Unicode_normalization

Java 从 1.6 开始支持它 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);
}

即我们只是将组合变音符号放在元音字母之后,然后对字符串应用规范化。

最佳答案

老实说,我还没有完全理解 Szabolcs 的代码在做什么,但在这个特殊情况下,这似乎在 Mathematica 中使用稍微少一点的代码产生了相同的结果

data = Import["http://unicode.org/Public/UNIDATA/NamesList.txt", "Lines"];

codes = Cases[data,
b_String /; StringMatchQ[
b, ___ ~~ "LATIN " ~~ "CAPITAL" | "SMALL" ~~ " LETTER " ~~
"A" | "E" | "I" | "O" | "U" ~~ " WITH " ~~ ___] :>
FromDigits[StringTake[b, 4], 16], Infinity];

FromCharacterCode[codes]

产生

"ÀÁÂÃÄÅÈÉÊËÌÍÎÏÒÓÔÕÖØÙÚÛÜàáâãäåèéêëìíîïòóôõöøùúûüĀāĂ㥹ĒēĔĕĖėĘęĚěĨĩĪīĬ\
ĭĮįİŌōŎŏŐőŨũŪūŬŭŮůŰűŲųƗƟƠơƯưǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǞǟǠǡǪǫǬǭǺǻǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍ\
ȎȏȔȕȖȗȦȧȨȩȪȫȬȭȮȯȰȱȺɆɇɨᶏᶒᶖᶙḀḁḔḕḖḗḘḙḚḛḜḝḬḭḮḯṌṍṎṏṐṑṒṓṲṳṴṵṶṷṸṹṺṻẚẠạẢảẤấẦầẨ\
ẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮ\
ữỰựⱥⱸⱺꝊꝋꝌꝍ"

关于java - 如何自动生成变音元音表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777054/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com