出于某种原因,我需要将西里尔字母“Ё”替换为“Е”。所以我写了这个简单的代码
someString = someString.toLowerCase().replace("ё", "е");
它在模拟器和我的大多数设备上运行得非常好,除了小米红米 9a。该应用程序根本不会取代小米上的“ё”。
可能出了什么问题?
小米红米9a不使用西里尔字母“Ё”,而是使用“Ë”! :) 这是带有分音符号的拉丁字母“E”。不知道是键盘的原因还是别的原因。
所以我们需要将代码更改为这样
// The first character of pattern is cyrillic Ё, the second is latin E with diaeresis.
// Some Xiaomi devices use the second variant instead of cyrillic letter
someString = someString.toLowerCase().replaceAll("[ёë]", "е");
或者这个
someString = someString.toLowerCase().replace("ё", "е").replace("ë", "е");