提取逗號分隔值在Java中我有這樣的字符串:如何從字符串
[comment=null, mapping={client_unique_id=0, email=1, first_name=2, last_name=3, batch_id=4}, recordNumber=2, values=[sdsd, asdsdf.com, jjj, hhh, 24]]
現在我需要只獲取sdsd,asdsdf.com,JJJ,HHH,從值24。 我怎麼能這樣做?
提取逗號分隔值在Java中我有這樣的字符串:如何從字符串
[comment=null, mapping={client_unique_id=0, email=1, first_name=2, last_name=3, batch_id=4}, recordNumber=2, values=[sdsd, asdsdf.com, jjj, hhh, 24]]
現在我需要只獲取sdsd,asdsdf.com,JJJ,HHH,從值24。 我怎麼能這樣做?
假設你的字符串是
String str = "sdsd, asdsdf.com, jjj, hhh, 24";
而且要通過逗號此字符串分離生成一個數組,你可以通過
String[] strArray = str.split(", ");
現在就這樣做你會得到一個數組像"sdsd", "asdsdf.com", "jjj", "hhh", "24"
這樣的字符串。
使用正則表達式
values=\[(.*)\]
然後,你需要從這場比賽獲得第1組。該組是:
0: values=[sdsd, asdsdf.com, jjj, hhh, 24]
1: sdsd, asdsdf.com, jjj, hhh, 24
試試這個
Pattern compile = Pattern.compile("values=\\[(.*)\\]");
Matcher matcher = compile.matcher("[comment=null, mapping={client_unique_id=0, email=1, first_name=2, last_name=3, batch_id=4}, recordNumber=2, values=[sdsd, asdsdf.com, jjj, hhh, 24]]");
if (matcher.find()) {
return matcher.group(1);
}
return null;
假設,
str = "[comment=null, mapping={client_unique_id=0, email=1, first_name=2, last_name=3, batch_id=4}, recordNumber=2, values=[sdsd, asdsdf.com, jjj, hhh, 24]]";
讓 - SSDD,asdsdf.com,JJJ,HHH,24使用本 -
String result = str.split("values=[")[1].split("]")[0];
一些簡單的方法可以是使用剛剛職能省由java.lang.String標識。這將做到這一點。
公共類StringTest {
public String[] getValues(String content, String searchString) {
// where does my search String start within the content?
int valuesPosition = content.indexOf(searchString);
// we have to separate the content, we are looking for
String values = content.substring(valuesPosition + searchString.length() + 1, content.length() - 2);
// the split-Method does exactly, what we want and creates an array of our single comma separated fields
String[] singleValues = values.split(",");
return singleValues;
}
public static void main(String args[]) {
StringTest stringTest = new StringTest();
String content = "[comment=null, mapping={client_unique_id=0, email=1, first_name=2, last_name=3, batch_id=4}, recordNumber=2, values=[sdsd, asdsdf.com, jjj, hhh, 24]]";
String searchString = "values=";
String v[] = stringTest.getValues(content, searchString);
System.out.println("it contains " + v.length + " Elements:");
for (String v1 : v) {
// by the trim()- method, we eliminate white spaces.
System.out.println(v1.trim());
}
}
}
嘗試使用拆分或正則表達式 –
@XYz阿莫斯,但我需要串僅在值分割關鍵 – dafodil
當心順序。如果String由HashMap生成 - 其元素的順序不能保證,並且可以隨時更改。 –