-
符号可以被视为运算符或负号。如果-
位于开始,则应将其视为负号和抹去字符串的减法。这仅适用于-
符号,而将始终是加号。如何实现此目的?
输入:
-23-23+4=F1Qa;
+23-23+4=F1Qa;
输出:
["-23","-","23","+","4","=","F","1","Q","a",";"]
["+", "23","-","23","+","4","=","F","1","Q","a",";"]
到目前为止我一直在尝试
String regx = (?:# .*? #:?)|(?!^)(?=\\D)|(?<=\\D)(?=\\d-)
String[] splits = inputString.split(regx);
您可以使用正则表达式,^-\d|\d\d
表示开头为负整数(即^-\d
)或数字(即\d
),或非数字(
\d
)。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String str = "-23-23+4=F1Qa;";
Pattern pattern = Pattern.compile("^-\\d+|\\d+|\\D");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
输出:
-23
-
23
+
4
=
F
1
Q
a
;
另一个测试:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String str = "+23-23+4=F1Qa;";
Pattern pattern = Pattern.compile("^-\\d+|\\d+|\\D");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
输出:
+
23
-
23
+
4
=
F
1
Q
a
;
如果我有这个字符串:“MyStringToForSpl的”,我想用这个词“环”来拆分它。如果我这样做:我将得到包含以下元素的数组: MyS 用于拆分 我无法找到拆分它并在结果数组中包含“ring”的最佳方法,如下所示: 1.我的 2 .戒指 3.ForSplitting
问题内容: 欲分割为4的阵列,以利用 这是我的代码: 但是,结果标记是一个空数组:[],而不是 我想要的4数组。 我已经测试过更改一点: 这次的结果标记为。这与我想要的接近,但是我真的不想在拆分之前添加此“ 1”。 问题基本上是,如果它仅包含空元素,它将返回一个空数组。 您能帮助解决问题吗? 问题答案: 您需要使用带有limit参数的重载方法。 从文档(重点是我的): limit参数控制应用图案的
问题内容: 我有这串 如何将此字符串拆分为每个子字符串包含2个字符的子字符串?我很困惑,因为我找不到分隔符来分隔它们。 问题答案:
问题内容: 将字符串拆分为流的 最佳 方法是什么? 我看到了这些变化: 我的优先事项是: 坚固性 可读性 性能 一个完整的可编译示例: 问题答案: / 由于返回数组,因此我始终建议您使用流式处理数组的规范用法。 / 是一个 varargs 方法,它恰好接受一个数组,这是由于varargs方法是通过数组实现的,并且在将varargs引入Java以及改型为接受可变参数的现有方法时,存在兼容性方面的问题
我想拆分到一个数组4使用 这是我的代码: 但是,结果标记是一个空数组:[],而不是我想要的4的数组。 我已经测试过稍微更改一下str: 这次的结果标记是<代码>[“”、“”、“”、“”、“”1“]。这接近我想要的,但我真的不想在进行拆分之前添加这个“1”。 问题基本上是字符串。如果split()只包含空元素,它将返回空数组。 你能帮我解决这个问题吗?
问题内容: 我有一个字符串,代表一个使用逗号分隔数千个数字的数字。如何在python中将其转换为数字? 在尝试进行转换之前,我可以将逗号替换为空字符串,但这感觉有点不对。有没有更好的办法? 问题答案: