1,错误用法一:
if (name == "") {
//do something
}
2,错误用法二:
if (name.equals("")) {
//do something
}
3,错误用法三:
if (!name.equals("")) {
//do something
}
我们来解说一下:
上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程序出现bug,永远也不会为true,也就是时说,if块里的语句永远也不会被执行。
上述用法二,用法三 的写法,是包括很多Java熟手也很容易犯的错误,为什么是错误的呢?也许你会感到纳闷。
对,它们的写法本身没错,但是,少了一个null判断的条件,试想,如果name=null的情况下,会发生什么后果呢?后果是,你的程序将抛出NullPointerException异常,系统将被挂起,不再提供正常服务。
当然,如果之前已经对name作了null判断的情况例外。
正确的写法应该先加上name != null的条件,如例:
if (name != null && !name.equals("")) {
//do something
}
或者
if (!"".equals(name)) {//将""写在前头,这样,不管name是否为null,都不会出错。
//do something
}
下面,我们举一个简单的例子:
TestNullOrEmpty.java
public class TestNullOrEmpty {
public static void main(String[] args) {
String value = null;
testNullOrEmpty(value);
value = "";
testNullOrEmpty(value);
value = " ";
testNullOrEmpty(value);
value = "hello me! ";
testNullOrEmpty(value);
}
static void testNullOrEmpty(String value) {
if (value == null ) { //正确的写法
System.out.println("value is null. ");
} else if ("".equals(value)) { //正确的写法
System.out.println("value is blank but not null. ");
} else {
System.out.println("value is /" " + value + "/" ");
}
if (value == "") { //NG 错误的写法
//别用这种写法
}
}
}
编译执行:
c:/>javac TestNullOrEmpty.java
c:/>Java TestNullOrEmpty
value is null.
value is blank but not null.
value is " "
value is "hello me!"
顶
分享到:
相关推荐
java 判断字符串是否是中文 共总结了6种方法。。。。
### JAVA判断字符串是否为数字字符 在日常的Java开发工作中,我们经常需要验证用户输入的数据是否符合预期格式,比如验证电话号码、身份证号等是否仅包含数字。这种情况下,一个简单有效的工具方法就显得尤为重要了...
以上介绍了四种判断字符串是否为数字的方法,包括逐字符检查、使用正则表达式、利用 `String.matches()` 方法以及基于 ASCII 值的比较。每种方法都有其适用场景和特点,开发者可以根据具体需求选择最合适的方式。...
在上面的代码中,我们首先使用 StringUtils.isBlank() 方法来判断字符串是否为空或长度为 0 或由空白符构成。如果字符串为空或长度为 0 或由空白符构成,返回 false。否则,我们使用 matches() 方法来判断字符串是否...
`isEmpty()`方法判断字符串是否为空。 16. **复制字符串** `repeat(int count)`方法在Java 11中引入,用于重复字符串`count`次。 17. **字符串编码与解码** `getBytes()`将字符串转换为字节数组,`new String...
### Java正则表达式判断字符串是否包含中文 在日常的软件开发过程中,我们经常会遇到需要对输入的字符串进行校验的情况。例如,在处理用户输入、文本分析或数据清洗时,可能需要判断一个字符串中是否包含中文字符。...
总结来说,Java中判断字符串是否含有逗号的方法主要包括使用`String`类的`indexOf()`方法以及正则表达式。选择哪种方法取决于具体的需求和场景。对于简单的情况,`indexOf()`方法通常足够使用;对于更复杂的情况,...
在Java中判断字符串是否含有乱码是一个常见的问题,特别是在处理网络传输数据或文本文件导入导出时。本文将介绍通过实例代码如何判断一个字符串是否含有乱码,并通过编写的Java方法来实现此功能。 首先,我们需要...
总结来说,判断字符串是否是日期格式主要涉及`SimpleDateFormat`、`DateTimeFormatter`和正则表达式。选择哪种方法取决于项目需求、兼容性及代码的可读性和维护性。在实际编程中,应结合具体情况灵活选用。
其中,`IsMatch` 方法用于判断指定的字符串是否与正则表达式匹配。 #### 2. IsMatch 方法详解 在提供的代码示例中,使用了 `IsMatch` 方法来进行字符串格式验证。具体代码如下: ```csharp public int IsDate...
总结来说,理解Java中`null`、空字符串`""`的区别,以及如何安全地进行比较,是编写健壮代码的关键。同时,了解字符串对象的内存地址和内容相等性的差异,可以帮助我们更好地理解和调试程序。在实际开发中,应始终...
我们可以通过遍历字符串,检查每个字符的ASCII码值是否在这个范围内来判断字符串是否全为数字。下面是具体实现: ```java public static boolean isNumeric(String str) { for (int i = str.length(); --i >= 0;) ...
Java 中常用字符串方法总结 Java 中的字符串是极其重要的数据类型之一,字符串的操作和处理在 Java 开发中占据着非常重要的地位。下面是 Java 中常用字符串方法的总结。 创建并初始化字符串 在 Java 中,可以使用...
本文将深入解析Java中如何判断字符串是否为数字的方法,以及存在的问题和解决方案。 首先,我们可以从简单的基础开始,即判断字符串是否为空或null。在Java中,一个空字符串("")和null值显然不是数字。因此,我们...
在Java编程语言中,有时我们...总结来说,Java中判断字符串是否为正整数主要依赖于正则表达式和字符串匹配。这个实例提供了一种简单而直观的实现方式,但在实际项目中,你可能需要根据具体需求进行适当的优化和扩展。
### Java判断字符串是否包含汉字的方法 在开发过程中,有时我们需要判断一个字符串是否包含汉字,并根据判断的结果执行不同的逻辑。这通常出现在需要处理多语言输入的情况下,例如用户输入验证、文本分析等场景。...
4. **性能优化**:使用 `String#matches` 方法结合正则表达式可以更高效地判断字符串是否符合数字格式。 ### 三、改进后的实现方案 #### 3.1 公共方法抽象 首先,我们可以定义一个公共方法 `isEmptyOrWhitespace` ...
这个方法利用了Java 8的特性,将字符串转换为整数流(每个字符的ASCII值),然后使用`distinct()`过滤重复,再通过`mapToObj()`将每个整数转换回字符,并最终使用`toArray()`生成新的字符串。 总结来说,去除Java...
- 缺点:不是用来判断字符串是否完全相等,而是返回一个整数值表示字符串的排序关系。 4. **使用 `String.equals` 静态方法:** - Java 9 及更高版本引入了静态方法 `String.equals`。 - 示例:`String.equals(s...