我正在编写以下程序来将字符与字符串分开并将其分配给数组.
public class Str {
public static void main(String[] args) {
String str = "hello";
String[] chars = str.split("");
for (int i = 0; i < chars.length; i++) {
System.out.println(i + ":" + chars[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
0:
1:h
2:e
3:l
4:l
5:o
Run Code Online (Sandbox Code Playgroud)
我得到一个空字符串作为数组的第一个元素.我期望输出没有空字符串,并且chars数组的长度为5而不是6.为什么在分割此字符串后出现空字符?
你可以使用String#toCharArray()方法:
String str = "hello";
char[] arr = str.toCharArray();
Run Code Online (Sandbox Code Playgroud)
至于你的问题,当你拆分一个空字符串时,你会得到第一个元素为空字符串,因为,你的字符串以空字符串开头,并且在每个字符之后也有一个空字符串.
因此,第一个分割发生在第一个字符之前.
h e l l o
^ ^ ^ ^ ^ ^
"Split location"
Run Code Online (Sandbox Code Playgroud)
将丢弃尾随的空字符串,如文档中所指定:
因此,结尾的空字符串不包含在结果数组中.
| 归档时间: |
|
| 查看次数: |
339 次 |
| 最近记录: |