我在Java中的String的split函数中遇到了一个意外的特性,这是我的代码:
final String line = "####";
final String[] lineData = line.split("#");
System.out.println("data: " + lineData[0] + " -- " + lineData[1]);
Run Code Online (Sandbox Code Playgroud)
这段代码给了我一个ArrayIndexOutOfBoundsException,而我希望它打印""和""(两个空字符串),或者可能是null和null(两个空字符串).
如果我改变我的代码
final String line = " # # # #";
final String[] lineData = line.split("#");
System.out.println("data: " + lineData[0] + " -- " + lineData[1]);
Run Code Online (Sandbox Code Playgroud)
然后它打印""和""(预期的行为).
如何让我的第一个代码不抛出异常,并给我一个空字符串数组?
谢谢
您可以使用split方法的limit属性来实现此目的.尝试
final String line = "####";
final String[] lineData = line.split("#", -1);
System.out.println("Array length : " + lineData.length);
System.out.println("data: " + lineData[0] + " -- " + lineData[1]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2293 次 |
| 最近记录: |