我最初这样叫String.format
:
return String.format("%s %f %f", anotherString, doubleA, doubleB);
Run Code Online (Sandbox Code Playgroud)
这使Android Lint生成此警告:
隐式使用默认语言环境是一个常见的错误来源:使用String.format(Locale,...)代替
所以我Locale.US
根据我在http://developer.android.com/reference/java/util/Locale.html上的"警惕默认语言环境"部分中的内容将其更改为显式使用:
return String.format(Locale.US, "%s %f %f", anotherString, doubleA, doubleB);
Run Code Online (Sandbox Code Playgroud)
为什么Android Lint仍会生成相同的警告?我必须清理Eclipse中的项目以摆脱它,当大多数警告只在违规行被修复后消失.我不确定我是否做错了.
在Java中,String toLowerCase方法使用默认系统Locale来确定如何处理小写.如果我小写一些ASCII文本,并希望确保按预期处理这个,我应该使用哪个Locale?
编辑:我主要关心的是在模式中编写表名和列名等标识符.因此我想要英文下套管适用.
Locale.ROOT声明它是区域设置敏感操作的语言/国家/地区中性区域设置
Locale.ENGLISH可能也是一个安全的选择.
我使用android 4.2 SDK,我收到了这行代码的警告:
String text0 = tagalogText.getText().toString();
String textA = text0.substring(0, 1).toUpperCase() + text0.substring(1).toLowerCase();
Run Code Online (Sandbox Code Playgroud)
当我将鼠标悬停在它上面时,它说:
Implicitly using the default locale is a common source of bugs: Use toUpperCase(Locale) instead.
Run Code Online (Sandbox Code Playgroud)
和
隐式使用默认语言环境是错误的常见来源:使用toLowerCase(Locale).
我从Java复制代码,而不是Java for android.有谁知道如何删除此错误?为什么它现在是使用这种方法的首选方式?