小智 116
"cat".split("(?!^)")
Run Code Online (Sandbox Code Playgroud)
这将产生
数组["c","a","t"]
Yur*_*ich 100
"cat".toCharArray()
Run Code Online (Sandbox Code Playgroud)
但如果你需要字符串
"cat".split("")
Run Code Online (Sandbox Code Playgroud)
编辑:将返回一个空的第一个值.
Ram*_*man 37
String str = "cat";
char[] cArray = str.toCharArray();
Run Code Online (Sandbox Code Playgroud)
如果输入的字符超出了基本多语言平面(某些CJK字符,新的表情符号...),"ab".split("(?!^)")则无法使用诸如之类的方法,因为它们会破坏此类字符(导致array ["a", "?", "?", "b"]),因此必须使用更安全的方法:
"ab".codePoints()
.mapToObj(cp -> new String(Character.toChars(cp)))
.toArray(size -> new String[size]);
Run Code Online (Sandbox Code Playgroud)
小智 6
split("(?!^)")如果字符串包含代理项对,则无法正常工作。你应该使用split("(?<=.)").
String[] splitted = "\xe8\x8a\xb1ab".split("(?<=.)");\nSystem.out.println(Arrays.toString(splitted));\nRun Code Online (Sandbox Code Playgroud)\n输出:
\n[\xe8\x8a\xb1, a, b, , , ]\nRun Code Online (Sandbox Code Playgroud)\n
总结一下其他答案...
这适用于所有 Java 版本:
"cat".split("(?!^)")
Run Code Online (Sandbox Code Playgroud)
这仅适用于 Java 8 及更高版本:
"cat".split("")
Run Code Online (Sandbox Code Playgroud)