null和""(空字符串)有什么区别?
我写了一些简单的代码:
String a = "";
String b = null;
System.out.println(a == b); // false
System.out.println(a.equals(b)); // false
Run Code Online (Sandbox Code Playgroud)
这两个语句返回false.看来,我无法找到它们之间的实际区别.
我试图将一个字符串分成29个令牌..... stringtokenizer不会返回null令牌.我试过string.split,但我相信我做错了什么:
String [] strings = line.split(",", 29);
Run Code Online (Sandbox Code Playgroud)
样本输入:
10150,15:58,23:58,16:00,00:00,15:55,23:55,15:58,00:01,16:03,23:58,,,,,16:00,23:22,15:54,00:03,15:59,23:56,16:05,23:59,15:55,00:01,,,,
10155,,,,,,,,,,,07:30,13:27,07:25,13:45,,,,,,,,,,,07:13,14:37,08:01,15:23
10160,10:00,16:02,09:55,16:03,10:06,15:58,09:48,16:07,09:55,16:00,,,,,09:49,15:38,10:02,16:04,10:00,16:00,09:58,16:01,09:57,15:58,,,,
Run Code Online (Sandbox Code Playgroud) 我的一个朋友带着这种我无法解释的奇怪行为来找我,任何洞察力的观点都会受到赞赏.
我正在运行VS 2005(C#2.0),以下代码显示了该行为
int rr = "test".IndexOf("");
Console.WriteLine(rr.ToString());
Run Code Online (Sandbox Code Playgroud)
上面的代码,打印"0",清楚地表明它应该返回-1
这也发生在Java中,下面的Class显示了这种行为:
public class Test{
public static void main(String[] args){
System.out.println("Result->"+("test".indexOf("")));
}
}
Run Code Online (Sandbox Code Playgroud)
我正在运行Java 1.6.0_17
对于一个字符串说,String str = "abc"双方str.indexOf("a")并str.indexOf("")返回0.这种行为合法吗?