我有以下字符串,我们称之为myString
:
file=android.txt&data=it contains android data
如何提取子字符串android.txt
和it contains android data
?
我尝试myString.substring(myString.lastIndexOf('=')+1, myString.length() );
,但它返回it contains android data
。
答案 0 :(得分:2)
您只需使用split
课程中的String
方法即可。
拆分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
答案 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.