我正在尝试下面的代码
String s1 = "ß.cfg";
System.out.println (s.toUpperCase());
Run Code Online (Sandbox Code Playgroud)
我得到的输出是SS.CFG因为Unicode没有定义ß的大写版本,而我希望输出为ß.CFG.
我有什么方法可以实现这一点,提前谢谢
"ß"字符相当于"ss"(例如在德语中使用),这在您的Locale(您在应用程序中使用的Locale)中定义.
您可以尝试使用不同的Locale使用方法进行一些实验:
toUpperCase(Locale locale)
Run Code Online (Sandbox Code Playgroud)
编辑:正如用户所说,这种方法无效,可能的workaroud(不是很优雅)是:
String s1 = new String ("auß.cfg").replace('ß', '\u9999');
System.out.println (s1.toUpperCase(Locale.UK).replace('\u9999', 'ß'));
Run Code Online (Sandbox Code Playgroud)
用于toUpperCase( Locale )明确说明这将发生的文档:
由于大小写映射并不总是1:1的char映射,因此生成的String可能与原始String的长度不同.
小写字母s - >两个字母:SS
| 归档时间: |
|
| 查看次数: |
4903 次 |
| 最近记录: |