我需要在“交换:”之后获取值。
我已经开发了一个从shell命令获取输出的方法,所以我有一个字符串,其中包含您在图片中看到的所有内容,但现在从字符串中我只想获得交换后的值:我怎么能做这个?这些值是可变的,甚至可以是全部三个。
答案 0 :(得分:0)
我们假设您将文字存储在名为String
的{{1}}中。假设Swap-line是String的最后一部分,那么你可以这样做:
textContent
答案 1 :(得分:0)
试试这个:
String[] stringParts = text.substring(text.indexOf("Swap:") + 5).trim().split("( )+");
int[] parts = new int[stringParts.length];
for (int i = 0; i < stringParts.length; i++)
parts[i] = Integer.parseInt(stringParts[i]);
它将在“交换”部分之后填充一个整数数组。
答案 2 :(得分:0)
由于您已经存储了shell命令的输出,因此您只需执行一些字符串操作即可搜索并提取相关信息。您可能会对以下特定字符串操作方法感兴趣:trim()
,indexOf()
和substring()
。
下面是一个简单的示例代码,介绍如何使用上述String方法在total
列下提取值:
public class ShellOutput {
public ShellOutput() {
final String extract = "Swap:"; // the keyword to search
String shellOutput = "Swap: 75692 29657 0"; // your shell output
int position = shellOutput.indexOf(extract); // get the position of the Swap: text
if (position != -1) {
String swapLine = shellOutput.substring(position + extract.length()); // remove everything except the swap line
String numbers = swapLine.trim(); // assuming they are spaces, otherwise do some operations to remove tabs if used
int firstSpace = numbers.indexOf(' '); // get the first space or change to a tab character if it is used
String totalNumber = numbers.substring(0, firstSpace); // remove up to the first found after the number
System.out.println("Total = " + totalNumber);
} else {
System.out.println("No '" + extract + "' segment found.");
}
}
public static void main(String[] args) {
new ShellOutput();
}
}
输出总计= 75692