gpt4 book ai didi

Java Western + Arabic 字符串连接问题

转载 作者:行者123 更新时间:2023-11-30 11:35:45 26 4
gpt4 key购买 nike

我在连接混合了西方字符和阿拉伯字符的文本片段时遇到了问题。

我有一个这样的标记列表:

-LRB-
دریای
مازندران
-RRB-
,

我使用以下过程来连接这些标记列表:

String str = "";
for (String tok : tokens) {
str += tok + " ";
}

这是我程序的输出:

-LRB- دریای مازندران -RRB- , 

可以看出,阿拉伯语单词的位置是倒过来的。我该如何解决这个问题(可能建议 Java 忽略有关文本方向的信息)?

编辑

其实我的问题好像是假问题。现在我有一个新的。我需要将每个单词包装在像这样的字符串中 (word *) 这样我的输出将是这样的:

(word1 *)(word2 *)(word3 *)...

我使用的程序如下:

String str = "";
for (String tok : tokens) {
str += "(" + tok + "*)";
}

然而,我得到的结果是这样的:

(-LRB- *)(دریای *)(مازندران *)(-RRB- *)(, *)

代替:

(-LRB- *)(دریای)(* مازندران *)(-RRB- *)(, *)

** 编辑2 **实际上,我发现我的问题不是问题。我把我的字符串写在一个文件上,然后用 nano 打开它(在控制台中)。并且已正确连接。

所以问题是由于 Eclipse 控制台(以及 gedit)引起的——比方说——不正确 呈现了字符串。

无论如何,感谢您的帮助!

最佳答案

输出是正确的,如果您要将此文本呈现给说阿拉伯语的用户,您应该覆盖文本的方向性。阿拉伯语是从右向左书写的。当您将两个阿拉伯字符串连接在一起时,第一个字符串将出现在第二个字符串的右侧。这是由 BiDi 算法控制的,其详细信息包含在 http://www.unicode.org/reports/tr9/ 中。 .

关于Java Western + Arabic 字符串连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14963095/

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