使用子字符串拆分字符串

时间:2015-05-14 15:43:54

标签: java android adt

我有以下字符串,我们称之为myString

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

如何提取子字符串android.txtit contains android data

我尝试myString.substring(myString.lastIndexOf('=')+1, myString.length() );,但它返回it contains android data

4 个答案:

答案 0 :(得分:2)

您只需使用split课程中的String方法即可。

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

&

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

然后你可以在=上分割这些元素,以便

file=android.txt - > fileandroid.txt
data=it contains android data - > datait contains android data

所以你的代码看起来像

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

答案 1 :(得分:2)

以下是您要找的内容:

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);
}

尝试并测试过。

答案 2 :(得分:0)

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"

答案 3 :(得分:-1)

您的输入字符串看起来像查询字符串。 I. e。由'&'分隔的键/值对列表。

我会将每个键/值对分成一个String,然后在第一个'='之后提取值。

    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.