使用子字符串拆分字符串

Split string using substring

我是 android 的新手,下面是一个场景。

我下面有以下字符串

file=android.txt&data="sampleExample"

如何提取子字符串 android.txtsampleExample?

注意:我尝试了以下代码

myString.substring(myString.lastIndexOf('=')+1, myString.length() );

但它 returns 输出为 SampleExample.

请帮我解决这个问题

谢谢

您可以简单地使用 String class 中的 split 方法。

拆分file=android.txt&data=it contains android data

& 上获取 "file=android.txt""data=it contains android data" 的数组。

然后你可以在 = 上拆分每个元素,所以

file=android.txt -> file, android.txt
data=it contains android data -> data, it contains android data

所以你的代码看起来像

foreach element in data.split(&)
   array = element.split(=)
   get second element from array

您输入的字符串看起来像查询字符串。 IE。由“&”分隔的 key/value 对列表。

我会将每个 key/value 对拆分为一个字符串,然后在第一个“=”之后提取值。

    String input = "file=android.txt&data=it contains android data"; 
    String[] items = input.split("&"); 
    String[] results = new String[items.length]; 
    for (int i = 0; i < items.length; i++)
    {
        int pos = item.indexOf("=");
        if (pos == -1)
            results[i] = null; 
        else
            results[i] = items[i].substring(pos + 1); 
    }

    // results now holds your strings. 
String body = "file=android.txt&data=it contains android data"
String[] data = body.substring(body.indexOf('=')+1, body.length()).split("&data=");

// data[0] = "android.txt"
// data[1] = "it contains android data"

这是您要查找的内容:

String myString = "file=android.txt&data=it contains android data";

Pattern pattern = Pattern.compile("^file=([^&]+)&data=(.+)");
Matcher matcher = pattern.matcher(myString);
if (matcher.find()) {
    String first = matcher.group(1);
    String second = matcher.group(2);
}

久经考验。