Java中获取String中空格后的值

and*_*des 4 java string extract

我有值字符串。

喜欢作为

String line= "cpu  74608   2520   24433   1117073   6176   4054";
Run Code Online (Sandbox Code Playgroud)

我只想提取这些值并将它们存储在不同的变量中。

有什么方法可以让我在每个空格后获取数值吗?

Dmi*_*urg 5

您拥有的选项之一是使用String.split方法。它接受正则表达式,因此您可以跳过任意数量的空格:

String[] values = line.split("\\s*");
Run Code Online (Sandbox Code Playgroud)

然后你必须将这些转换String为你需要的值:

int firstNum = Integer.valueOf(values[1]);
// anything like this
Run Code Online (Sandbox Code Playgroud)

如果您可以将其存储为数组/列表,但不能存储为不同的变量,也许您会希望以这种方式提取所有数字(Java 8):

int[] numbers = Stream.of(values)
        .filter(str -> str.matches("-?\\d+"))
        .mapToInt(Integer::valueOf)
        .toArray();
Run Code Online (Sandbox Code Playgroud)

也许,更简单的方法是使用Scanner

Scanner scanner = new Scanner(line);
String firstStr = scanner.next();
int firstNum = scanner.nextInt();
// and so on...
Run Code Online (Sandbox Code Playgroud)