有一个
String temp = "M0-1"
Run Code Online (Sandbox Code Playgroud)
如何将此String转换为String []?
如果输出新的String数组,结果应为:
String[] newStringArray;
newStringArray[0] = M;
newStringArray[1] = 0;
newStringArray[2] = -1;
Run Code Online (Sandbox Code Playgroud)
新String数组的最后一个元素应该是"-1",这意味着"-1"将被视为一个整体,而不是" - "和"1".
我试图使用String.split("")解析这个字符串,但只得到一个这样的String数组:
String[] newStringArray;
newStringArray[0] = M;
newStringArray[1] = 0;
newStringArray[2] = -;
newStringArray[3] = 1;
Run Code Online (Sandbox Code Playgroud)
更新:字符串56应为[5,6],-10应为[-1,0]
小智 6
这样split()做:
String[] array = temp.split("(?<=[^-])");
Run Code Online (Sandbox Code Playgroud)
当前一个字符不是 a 时,它可以分割-
那个奇怪的正则表达式被称为后视.它的语法是(?<=regex),这是一个非捕获断言,前面的输入匹配指定的正则表达式,在这种情况下[^-],这意味着"任何不是负的字符".
这种断言有4个版本:
(?=regex)是一个积极的前瞻,意味着下一个输入必须匹配regex(?!regex)是一个负向前看,意味着下一个输入必须不匹配regex(?<=regex)是一个积极的外观,意味着前面的输入必须匹配regex(?<!regex)是一个负面的背后,意味着nepreceedingxt输入必须不匹配regex这是一个测试:
public static void main(String[] args) {
String temp = "M0-1";
String[] newStringArray = temp.split("(?<=[^-])");
System.out.println(Arrays.toString(newStringArray));
}
Run Code Online (Sandbox Code Playgroud)
输出:
[M, 0, -1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |