我创建了一个带有三个文本框的“颜色选择器”,用户可以在其中定义RGB值。
为了检查输入的值是否正确(仅限0-255之间的数字),我使用以下命令:
public Color getColor() {
if (tfRed.getText().equals("") || tfGreen.getText().equals("") || tfBlue.getText().equals("")) {
return new Color(0, 0, 0, 0);
} else {
if (tfRed.getText().matches("\\d+") && tfGreen.getText().matches("\\d+") && tfBlue.getText().matches("\\d+")) {
// ...
} else {
return new Color(0, 0, 0, 0);
}
}
}
我想问的是:使用String.isEmpty()
更好吗?我从来没有找到一个令人满意的答案,我一直在想是否有什么不同。
发布于 2011-07-26 18:06:02
可以,使用String.isEmpty()
。它(在语义上)更简洁(性能也稍好一些,但这并不明显)如果实例可以为空,则使用commons-lang StringUtils.isEmpty(string)
发布于 2011-07-26 18:07:45
通常,我喜欢使用equals,但反过来,即:
"".equals(someString);
Null-safe :)
但是,是的,isEmpty()是一个更简单的操作,但我认为它对性能的贡献并不是很大(除非您正在编写嵌入式实时内容)。
发布于 2011-07-26 18:06:53
使用myString.equals("")
,编译器首先创建一个字符串对象(它等同于myString.equals(new String(""))
。
因此,isEmpty()应该是一个更好的选择(尽管equals("")非常流行)。
https://stackoverflow.com/questions/6828362
复制相似问题