我有一个控制台应用程序,它打印一个菜单并获得一些输入等。菜单系统有我下划线的标题:
Main Menu
=========
标题可以有不同的大小,所以我的第一次尝试是获取字符串长度并打印许多指定的下划线字符。不幸的是,这在我们的日语语言环境中不起作用。标题存储在 .properties 文件中,并使用 ResourceBundle 类获取。
我在 StackOverflow 中看到了一些可能的解决方案,它们似乎主要与 GUI 相关,所以没有帮助:
public static int getGraphemeCount(String text) {
int graphemeCount = 0;
BreakIterator graphemeCounter = BreakIterator.getCharacterInstance();
graphemeCounter.setText(text);
while (graphemeCounter.next() != BreakIterator.DONE)
graphemeCount++;
return graphemeCount;
}
public static void outputTitle(String title,char underChar) {
String underline = repeats(underChar,getGraphemeCount(title));
System.out.printf("\n\t%s\n\t%s\n",title,underline);
}
还有一个额外的问题是不是所有的文本都会被翻译(例如公司或产品名称)。
[更新]
仔细查看输出后,单个日文字符似乎占每个英文字符的两个位置。是否有一个函数可以根据每个字符来确定这一点?
[更新]
有什么想法吗?
西蒙