我想分割一个utf-8字符串。
我尝试了StringTokenizer
,但失败了。
标题应为“0”,但显示为“عدي_صدام_حسين”。
String test = "en.m عُدي_صدّام_حُسين 1 0";
StringTokenizer stringTokenizer = new StringTokenizer(test);
String code = stringTokenizer.nextToken();
String title = stringTokenizer.nextToken();
答案 0 :(得分:4)
这里的问题是阿拉伯语文本不是字符串的“末尾”。
例如,如果我选择字符串文字的内容(在Chrome中),从左到右移动鼠标,则首先选择en.m
,然后选择所有阿拉伯文字,然后选择0 1
。文本只是看起来“结束”,因为它是如何呈现的。
在Java源代码中指定的字符串实际上 具有عُدي_صدّام_حُسين
作为第二个标记。所以,你正确地分裂它,你只是没有分裂你认为你分裂的东西。
答案 1 :(得分:0)
通常, 没有正确的方法,但我通常使用substring()
类的方法String
(请参阅here)。您可以将它传递给begin索引,以使其从该索引返回到原始String结尾的子字符串,或者返回原始String中子字符串的两个边界。使用同一类的方法indexOf()
,如果您不知道其索引,则可以在原始String中找到一个字符。