当前位置: 首页 > 面试题库 >

分隔Unicode连字符

阮昊阳
2023-03-14
问题内容

在大量的Unicode字符中,有一些实际上代表多个字符,例如U +
FB00连字ff表示两个’f’字符。有什么容易的方法可以将这样的字符转换成多个单个字符?最好是在标准Java
API中可用的东西,但是如果需要,我可以引用一个外部库。


问题答案:

U + FB00是兼容字符。通常,Unicode不支持连字的单独代码点(认为是否使用连字以及何时使用连字是布局决定,并且不影响数据的存储方式)。其中
一些 仍然可以允许往返转换与 确实 将连字表示为单独实体的旧编码兼容。

幸运的是,该字符结扎代表的信息
存在于Unicode数据文件和最有能力的字符串处理系统具有数据内置。

在Java中,你需要使用的Normalizer类和NFKC形式:

String ff ="\uFB00";
String normalized = Normalizer.normalize(ff, Form.NFKC);
System.out.println(ff + " = " + normalized);

这将打印

ff = ff


 类似资料:
  • 这是PascalCase: 这是camelCase: 这是snake_case: 所以我的问题是,是否有一个广为接受的名字:?它常用于网址。

  • 我的程序中有很多textviews。我希望这些文本视图中的数字以3到3隔开。我应该为任何TextView编写代码吗?有没有一种方法可以编写一次代码并将其用于整个程序?谢谢你。

  • 问题内容: 我有从.net应用程序A,B,C,D,E,F获取的字符串, 我想写一个SQL选择语句像 这在t-SQL中将不起作用,因为它使用不将值分开的一个字符串。有什么办法可以做到这一点? 问题答案: 它认为最简单的方法是动态SQL生成:

  • 我有一组由连字符分隔的ID,其中至少可以有6个字符,包含字母数字值和一些特殊字符,在末尾,只有数字值是不允许的。如下所示: 我正在尝试下面给出的具有以下规则的以下模式,但面临一些测试查询的困难... https://regex101.com/r/d8MFRE/5

  • 我正在构建一个名为“id”的查询参数,它是一个列表,所以我有类似于localhost:8080/application?id=1 (我知道我的方法不够,我需要写第一个?id=) 方法 我的问题是:为什么我收到这个错误在Collectors.joining(" 我正在使用OpenJDK

  • 抱歉,目前我尚未完成这个主题,请稍后再来。 (译注:C++对unicode的支持不是特别重视)