gpt4 book ai didi

java - 如何将字符串转换为字符串数组(此字符串包含负数)

转载 作者:行者123 更新时间:2023-11-29 07:17:21 25 4
gpt4 key购买 nike

有一个

String temp = "M0-1"

如何将这个 String 转换为 String[] ?

如果输出新的字符串数组,结果应该是:

String[] newStringArray;
newStringArray[0] = M;
newStringArray[1] = 0;
newStringArray[2] = -1;

新的字符串数组的最后一个元素应该是“-1”,这意味着“-1”将被视为一个整体,而不是“-”和“1”分开。

我尝试使用 String.split("") 解析这个字符串,但只得到一个这样的字符串数组:

String[] newStringArray;
newStringArray[0] = M;
newStringArray[1] = 0;
newStringArray[2] = -;
newStringArray[3] = 1;

更新:字符串 56 应该是 [5, 6],-10 应该是 [-1, 0]

最佳答案

split()会做的:

String[] array = temp.split("(?<=[^-])");

当前一个字符不是 - 时,它通过拆分来工作

那个看起来很奇怪的正则表达式被称为look-behind。它的语法是(?<=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));
}

输出:

[M, 0, -1]

关于java - 如何将字符串转换为字符串数组(此字符串包含负数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8483146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com