and*_*des 4 java string extract
我有值字符串。
喜欢作为
String line= "cpu 74608 2520 24433 1117073 6176 4054";
Run Code Online (Sandbox Code Playgroud)
我只想提取这些值并将它们存储在不同的变量中。
有什么方法可以让我在每个空格后获取数值吗?
您拥有的选项之一是使用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)