在 java 中解析 String 和 Int

Parsing String and Int in java

我正在使用 java,我有一个要解析的字符串,其中包含以下内容

Logging v0.12.4

并想将其拆分为包含

的字符串
Logging

和一个包含

的整数数组
0.12.4

哪里

array[i][0] = 0

array[i][1] = 12

等等。我已经坚持了一段时间了。

您可以使用正则表达式或只是普通的字符串拆分

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"

您可以 "convert" 使用 Integer.parseInt(...)

将这些转换为整数
  • 在 space 上拆分您的字符串以获得 Loggingv0.12.4
  • v0.12.4
  • 中删除(子字符串)v
  • 在点上拆分 0.12.4(使用 split("\.") 因为点在正则表达式中很特殊)
  • 您还可以将每个 "0" "12" "4" 解析为整数(Integer.parseInt 可能会有帮助)。

伙计,你来了,因为我今天很慷慨:

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();
}