我正在使用java,我有一个我想解析的字符串,其中包含以下内容
Logging v0.12.4
并希望将其拆分为包含
的字符串Logging
和包含
的整数数组0.12.4
,其中
array[i][0] = 0
和
array[i][1] = 12
等等。我现在已经坚持了一段时间。
答案 0 :(得分:3)
Logging
和v0.12.4
v
v0.12.4
0.12.4
(使用split("\\.")
,因为点在正则表达式中是特殊的)"0"
"12"
"4"
解析为整数(Integer.parseInt
可能会有所帮助)。答案 1 :(得分:0)
您可以使用正则表达式或正常的字符串拆分
String myString = "Logging v0.12.4";
String[] parts = myString.split(" v");
// now parts[0] will be "Logging" and
// parts[1] will be "0.12.4";
然后对版本部分执行相同的操作:
String[] versionParts = parts[1].split("\\.");
// versionParts[0] will be "0"
// versionParts[1] will be "12"
// versionParts[2] will be "4"
你可以"转换"使用Integer.parseInt(...)
将这些转换为整数答案 2 :(得分:0)
在这里,伙计,因为我今天感到慷慨:
String string = "Logging v0.12.4";
Matcher matcher = Pattern.compile("(.+?)\\s+v(.*)").matcher(string);
if (matcher.matches()) {
String name = matcher.group(1);
int[] versions = Arrays.stream(matcher.group(2).split("\\.")).mapToInt(Integer::parseInt).toArray();
}