【问题标题】:Number of characters in Java String [duplicate]Java字符串中的字符数[重复]
【发布时间】:2012-09-26 05:16:53
【问题描述】:
【问题讨论】:
标签:
java
unicode
utf-8
thai
【解决方案1】:
似乎您只是不想将 unicode 标记计为单独的字符;
static boolean isMark(char ch)
{
int type = Character.getType(ch);
return type == Character.NON_SPACING_MARK ||
type == Character.ENCLOSING_MARK ||
type == Character.COMBINING_SPACING_MARK;
}
可以用作;
String olle = "อภิชาติ";
int count = 0;
for(int i=0; i<olle.length(); i++)
{
if(!isMark(olle.charAt(i)))
count++;
}
System.out.println(count);
并返回“5”。
【解决方案3】:
您可以使用java.text.BreakIterator 来查找字素(“视觉字符”)之间的间隙并计算它们。这是一个例子:
import java.text.BreakIterator;
..
int graphemeLength(String str) {
BreakIterator iter = BreakIterator.getCharacterInstance();
iter.setText(str);
int count = 0;
while (iter.next() != BreakIterator.DONE) count++;
return count;
}
现在graphemeLength("อภิชาติ") 将返回 5。