是否java.util.List.isEmpty()检查清单本身null,或做我必须做这个检查自己?
例如:
List<String> test = null;
if (!test.isEmpty()) {
    for (String o : test) {
        // do stuff here            
    }
}
这会抛出NullPointerException因为测试null吗?
null string(String s = null)和空字符串(String s = "")之间有什么区别?
这就是我所拥有的:
String s1 = ""; //print statement does not print any thing for s1 but s1.length()=0
String s2 = null;//print statement prints "null" for s2  but s2.length() gives exception
这是什么意思?
我很好奇为什么String.indexOf在要求字符串中的空字符串的索引时返回0(而不是-1).
Javadocs只说这个方法返回指定字符串的字符串中的索引,如果找不到字符串,则返回-1.
对我来说,这种行为似乎非常出乎意料,我本来期待-1.任何想法为什么会发生这种意外行为?我至少认为这在方法的Javadocs中值得注意...
System.out.println("FOO".indexOf("")); // outputs 0 wtf!!!
System.out.println("FOO".indexOf("bar")); // outputs -1 as expected
System.out.println("FOO".indexOf("F")); // outputs 0 as expected
System.out.println("".indexOf("")); // outputs 0 as expected, I think
我读到这null不是instanceof什么,但另一方面,Java 中的所有东西都扩展了Object类.
假设您有一个名为"adminNo"的输入字段.当你调用getParameter("adminNo")方法返回一个空值并且它返回一个空字符串""时有什么区别?
我是学生,我决定在UVa Online Judge尝试一些问题集,以帮助提高我的技能.在第一个问题上,我遇到了一堵砖墙.在打击编译器错误之后(我终于找到了一些在他们的论坛中提交Java代码的模糊指南),我现在已经毕业于"错误答案"状态.
为了达到目的 - 如果我没有用try/catch包围这个while循环,它会在调用NumberFormatException时在输入字符串""上生成一个运行时Integer.parseInt().这是有道理的,除非输入是,""它null不应该进入循环.
我试过摆脱split(" ")并使用a StringTokenizer,但这会产生错误的索引异常.
该程序正常工作,直到我通过按Enter键结束输入.那是错误产生的时候.如果我用try/catch包围循环,那么没有错误,但是控制台似乎会抛出额外的换行符,我相信这是我"错误答案"状态的来源.
我究竟做错了什么?
public static void main(String[] args){
     Scanner kb = new Scanner(System.in);
     String input;
     String[] temp;
     int i, j;
     while( (input = kb.nextLine()) != null ){
        temp = input.split(" ");
        i = Integer.parseInt(temp[0]);
        j = Integer.parseInt(temp[1]);
        solve(i, j);
     }
}
当我以这两种方式编程时,我得到了不同的模拟结果:
if (S == null) {
        return new LinkedList<>();
    }
和
int len = S.length();
if(len == 0) return new LinkedList<>();
第一段代码给了我[""],通过了测试。虽然第二个给了我 [],但失败了。而且我还注意到还有另一种方式:S.isEmpty()
请有人解释一下吗?非常感谢!
String str1=""和之间有什么区别String str2 =null?当我们打印str1时没有输出,当我们打印str2输出时null.