繁体   English   中英

String.toLowerCase()的用途是否具有默认语言环境?

[英]Purpose of String.toLowerCase() with default locale?

Java有两个重载,分别用于String.toLowerCase和toUpperCase。 其中一个重载将Locale作为参数,而另一个不使用参数并使用默认语言环境( Locale.getDefault() )。

无参数变体可能无法按预期工作,因为大小写转换遵循国际化,并且默认语言环境取决于系统。 最值得注意的是,小写字母i在土耳其语语言环境中被转换为点缀upper的大写字母。

这些方法的目的是什么? 无参数变体是否有合法用途? 或许他们只是一个设计错误? (与默认情况下使用系统默认字符编码的几个I / O API不同。)

我认为它们只是大部分时间都可以使用的便捷方法,因为真正需要I18n的应用程序可能只是世界上java应用程序世界中的一小部分。

如果你在java程序中对文件名的unix路径进行硬编码并尝试在windows框中运行,那么你也会得到错误的结果,这不是java的错。

我想这是一次写一次运行原则的实现。

这是有道理的,因为您可以在JVM启动时提供默认语言环境作为运行时参数之一。

此外,Java运行时为日期和数字提供了许多类似的格式化方法。 SimpleDateFormatNumberFormat等)

一些博客 文章表明默认的语言环境和字符集确实是一个设计错误,没有任何有意义的用途。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM