获取字符串部分

时间:2014-06-14 06:47:02

标签: java android

我需要在“交换:”之后获取值。

image

我已经开发了一个从shell命令获取输出的方法,所以我有一个字符串,其中包含您在图片中看到的所有内容,但现在从字符串中我只想获得交换后的值:我怎么能做这个?这些值是可变的,甚至可以是全部三个。

3 个答案:

答案 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