我需要在Android上用Java大写一个字符串
我通常使用:
public static String ucFirst(String str) {
if (str.isEmpty()) {
return str;
} else {
return Character.toUpperCase(str.charAt(0)) + str.substring(1);
}
}
String ciudad = ucFirst("barcelona") //Barcelona
Java 或库中是否有我不知道的函数,可以输入小写字母等...?
我知道原生 Java 中没有这样的功能。
由于它与您在算法中提到的一样简单,因此我不知道是否值得依赖库等来做到这一点。我特别提出的实现与您的非常相似。只是它正在使用
substring
并且还在考虑空字符串。或多或少有以下几点:我希望答案是有用的。
问候。
为了补充@hdlopez的答案,这个过程应该非常简单,最常见的是这个函数(包括验证),我们需要将第一个字母更改为大写:
Android 试图不使用 Apache 库,就像 Http 类和外部库一样,我没有看到这么简单的选项。
确保第一个字符始终为大写而其他字符始终为小写的另一种选择是:
例子:
城市价值将是:
Barcelona
关于这个主题的 Stackoverflow 有几个答案: https ://stackoverflow.com/questions/15259774/capitalise-first-letter-in-string-android
Apache Commons Lang 有一个名为StringUtils
capitalize(String)
的方法可以做到这一点。它还有许多其他方法,您必须评估向 APK 添加额外的 2MB 是否值得。. 将大约 400KB 添加到您的 apk。如果你想在一行中完成,你可以使用这样的东西,它没有 if,并且更容易阅读:
但是这种方法可能不如您示例中的方法有效。
请记住,如果字符串为空/null,则必须处理异常。或者在执行语句之前使用包括 null/empty 验证的防御性方法,它将取决于用例并且添加它已经从一行中删除它。
我认为不建议仅包含一个用于大写的库,因为该过程非常简单,但我们有这个:
我做了类似的回答,他们给了我这个答案。它对我来说很完美。