我创建了一个"Color Chooser",其中包含三个文本框,用户可以在其中定义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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我问的是:使用它更好String.isEmpty()吗?我从来没有找到令人满意的答案,我一直想知道是否有任何不同.
这两种方法有什么区别?
public boolean nameControl(String str)
{
if (str.trim().isEmpty()) return false;
if (str.trim().length() == 0) return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
我需要找出str至少应该有一个角色.
我想知道,isEmpty和equals("")之间有什么区别?它们看起来与我自己完全相同.
我正在以这种格式获取DOB字符串"\/Date(588657600000-0400)\/",我正在解析如下.
String target = custom.getDOB();
if (target == null || target == "") {
holder.item3.setText("-");
} else {
long millis = Long.parseLong(target.substring(
target.indexOf("(") + 1, target.indexOf("-")));
java.text.DateFormat df = new SimpleDateFormat("MM-dd-yyyy", Locale.ENGLISH);
holder.item3.setText(df.format(new Date(millis)));
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误"04-08 22:44:09.864:E/AndroidRuntime(3837):: java.lang.NumberFormatException无效长:"".我之前正在检查,我的String对象是否包含null or ""并将其设置为" - ",但仍然是我得到这个例外.
更新:
04-08 22:59:17.423:E/AndroidRuntime(4175):java.lang.NumberFormatException:无效长:""04-08 22:59:17.423:E/AndroidRuntime(4175):at java.lang.Long. invalidLong(Long.java:125)04-08 22:59:17.423:E/AndroidRuntime(4175):at java.lang.Long.parseLong(Long.java:346)04-08 22:59:17.423:E/AndroidRuntime(4175):在java.lang.Long.parseLong(Long.java:319)
我将null和空字符串文字检查更改为此,但我仍然收到此错误.
if(target == null || target.equals(""))
Run Code Online (Sandbox Code Playgroud)