我有這樣的String
:如何檢索Java中特定單詞後的單詞?
{aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3,.......}
,我想cc=
後獲得的所有單詞的列表。
我該怎麼辦?我對正則表達式不是很有信心。
我有這樣的String
:如何檢索Java中特定單詞後的單詞?
{aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3,.......}
,我想cc=
後獲得的所有單詞的列表。
我該怎麼辦?我對正則表達式不是很有信心。
public static void main(String[] args) {
String input = "aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3";
String[] splitValues = input.split(", ");
Map<String,List<String>> results = new Hashtable<>();
List<String> valueList = null;
// iterate through each key=value adding to the results
for (String a : splitValues) {
// a = "aa=bbbb" etc
String[] keyValues = a.split("=");
// you can check if values exist. This assumes they do.
String key = keyValues[0];
String value = keyValues[1];
// if it is already in map, add to its value list
if (results.containsKey(key)) {
valueList = results.get(key);
valueList.add(value);
} else {
valueList = new ArrayList<>();
valueList.add(value);
results.put(key, valueList);
}
}
System.out.println("cc= values");
valueList = results.get("cc");
// assumes value is in results
for (String a : valueList)
System.out.println(a);
}
你的問題很模糊,但我猜字符串按原樣提供,如:
String toSearch = "{aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3,.......}";
通過列表我猜你指的是抽象的List對象,而不是一個數組。這裏是一個解決方案:
String toSearch = "{aa=bbbb, cc=blabla1, ee=ffff, cc=blabla2, gg=hhhh, cc=blabla3,.......}";
List<String> result = new ArrayList<String>();
int prevMatch = 0;
while (toSearch.indexOf("cc=", prevMatch+1) != -1) {
result.add(toSearch.substring(// Substring method.
toSearch.indexOf("cc=",prevMatch+1)+3,toSearch.indexOf(",") //Getting correct indexes.
));
prevMatch = toSearch.indexOf("cc=",prevMatch+1);
}
的prevMatch變量確保的indexOf(「CC =」),其將返回將在字符串中出現的下一個。對於上面的字符串,返回的ArrayList將包含單詞「blabla1」,「blabla2」,「blabla3」以及其他遇到的任何其他字符。
它是地圖或屬性對象嗎? – Rao
「是地圖對象,然後我使用mymap.get(」mykey「)返回一個列表(我通過toString()方法將其用作字符串) – boso92
您可以顯示您嘗試過的方法以及代碼中的問題你認爲造成這個問題? – Rao