I have string variable String temp="acc=101&name=test";
and now how to get the value of name
param from temp string.
Asked
Active
Viewed 635 times
0

ACP
- 34,682
- 100
- 231
- 371
-
you can make use of split function – ankit Aug 27 '13 at 07:13
-
String temp = "acc=101&name=test"; String[] tempParts = temp.split("name="); System.out.println(tempParts[1]); – ankit Aug 27 '13 at 07:17
-
2If you are in a web environment the classes of your framework probably provide service methods to analyze URL parameters, e.g. method [getParameter of class ServletRequest](http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameter(java.lang.String)) – oddparity Aug 27 '13 at 07:25
-
Seems like a duplicate of http://stackoverflow.com/questions/1667278/parsing-query-strings-in-java – Jared Sohn Aug 27 '13 at 07:56
9 Answers
1
public static Map<String, String> getParamMap(String query)
{
String[] params = query.split("&");
Map<String, String> map = new HashMap<String, String>();
for (String param : params)
{
String name = param.split("=")[0];
String value = param.split("=")[1];
map.put(name, value);
}
return map;
}
String temp="acc=101&name=test";
Map<String, String> map = getParamMap(temp);
for(Object object :map.keySet()){
System.out.println("key= "+object +" value= "+map.get(object));
}
System.out.println(map.get("name"));

Prabhakaran Ramaswamy
- 25,706
- 10
- 57
- 64
1
Here is a non-general way
String str = "name=";
System.out.println(temp.substring(temp.indexOf(str) + str.length()));
It could be implemented in more general way of course:
String temp = "acc=101&name=test";
StringTokenizer st = new StringTokenizer(temp, "&");
String paramName = "name";
String paramValue = "";
while(st.hasMoreElements()) {
String str = st.nextToken();
if (str.contains(paramName)) {
paramValue = str.substring(str.indexOf(paramName) + paramName.length() + 1);
break;
}
}
System.out.println(paramValue);

Ean V
- 5,091
- 5
- 31
- 39
0
String temp="acc=101&name=test";
String[] split = temp.split("&");
String[] name = split[1].split("=");
System.out.println(name[1]);

gjman2
- 912
- 17
- 28
0
You can use a method like below
public static String getValue(String queyStr, String paraamName){
String[] queries=queyStr.split("&");
for(String param:queries){
if(param.indexOf(paraamName)!=-1)
return param.split("=")[1];
}
return null;
}
And call the method like
getValue(temp, "name")

Krushna
- 5,059
- 5
- 32
- 49
0
Assuming you have constant format
:
String temp="acc=101&name=test";
String result =temp.substring(temp.lastIndexOf("=")+1,temp.length());
//result is test

Suresh Atta
- 120,458
- 37
- 198
- 307
-
@downvoter,I would like to see your comment.Thanks for your valuable comment.Sure,it helps me in future to correct my codes :) – Suresh Atta Aug 27 '13 at 07:30
0
public static void main(String[] args)
{
String temp = "acc=101&name=test";
System.out.println(temp.split("&")[1].split("=")[1]);
}

ankit
- 4,919
- 7
- 38
- 63
0
If you are looking for a way to parse GET-Parameters out of an URL:
public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException {
Map<String, String> query_pairs = new LinkedHashMap<String, String>();
String query = url.getQuery();
String[] pairs = query.split("&");
for (String pair : pairs) {
int idx = pair.indexOf("=");
query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
}
return query_pairs;
}
You can access the returned Map using <map>.get("name")
, with the URL given in your question this would return "test".

Khinsu
- 1,487
- 11
- 27
0
I would put the whole parameter in a HashMap so it is easy to get the values.
HashMap<String, String> valuemap = new HashMap<String, String>();
If you do it like so, you have to split the values at the right place...
String temp="acc=101&name=test";
valuemap.put(temp.split("&")[0].split("=")[0], temp.split("&")[0].split("=")[1]);
valuemap.put(temp.split("&")[1].split("=")[0], temp.split("&")[1].split("=")[1]);
...and put them into your HashMap. Than you have a nice collection of all your values and it is also better if you have more than only that two values. If you want the value back, use:
valuemap.get("acc")
valuemap.get("name")

Gerret
- 2,948
- 4
- 18
- 28