使用java获取字符串中参数的值

使用java获取字符串中参数的值,java,string,Java,String,我有字符串变量string temp=“acc=101&name=test”以及如何从临时字符串中获取nameparam的值。您可以使用如下方法 temp.split("&")[1].split("=")[1] public static String getValue(String queyStr, String paraamName){ String[] queries=queyStr.split("&"); for(String param:queries

我有字符串变量
string temp=“acc=101&name=test”
以及如何从临时字符串中获取
name
param的值。

您可以使用如下方法

temp.split("&")[1].split("=")[1]
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;
}
并调用如下方法

getValue(temp, "name")

您可以使用如下方法

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;
}
并调用如下方法

getValue(temp, "name")

假设您有常量
格式

 String temp="acc=101&name=test";
 String result =temp.substring(temp.lastIndexOf("=")+1,temp.length());

//result is test

假设您有常量
格式

 String temp="acc=101&name=test";
 String result =temp.substring(temp.lastIndexOf("=")+1,temp.length());

//result is test

如果您正在寻找一种从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;
}
publicstaticmapsplitquery(URL)抛出UnsupportedEncodingException{
Map query_pairs=新建LinkedHashMap();
String query=url.getQuery();
String[]pairs=query.split(&);
for(字符串对:对){
int idx=pair.indexOf(“=”);
query_pairs.put(urldecker.decode(pair.substring(0,idx),“UTF-8”)、urldecker.decode(pair.substring(idx+1),“UTF-8”);
}
返回查询对;
}

您可以使用
.get(“name”)
访问返回的映射,问题中给出的URL将返回“test”。

如果您正在寻找从URL解析get参数的方法:

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;
}
publicstaticmapsplitquery(URL)抛出UnsupportedEncodingException{
Map query_pairs=新建LinkedHashMap();
String query=url.getQuery();
String[]pairs=query.split(&);
for(字符串对:对){
int idx=pair.indexOf(“=”);
query_pairs.put(urldecker.decode(pair.substring(0,idx),“UTF-8”)、urldecker.decode(pair.substring(idx+1),“UTF-8”);
}
返回查询对;
}
您可以使用
.get(“name”)
访问返回的映射,使用问题中给出的URL,这将返回“test”。

公共静态映射getParamMap(字符串查询)
{  
字符串[]params=query.split(&);
Map Map=newhashmap();
for(字符串参数:params)
{  
字符串名称=参数拆分(“=”[0];
字符串值=参数拆分(“=”[1];
map.put(名称、值);
}  
返回图;
}
字符串temp=“acc=101&name=test”;
映射映射=getParamMap(临时);
对于(对象:map.keySet()){
System.out.println(“key=“+object+”value=“+map.get(object));
}
System.out.println(map.get(“name”);
公共静态映射getParamMap(字符串查询)
{  
字符串[]params=query.split(&);
Map Map=newhashmap();
for(字符串参数:params)
{  
字符串名称=参数拆分(“=”[0];
字符串值=参数拆分(“=”[1];
map.put(名称、值);
}  
返回图;
}
字符串temp=“acc=101&name=test”;
映射映射=getParamMap(临时);
对于(对象:map.keySet()){
System.out.println(“key=“+object+”value=“+map.get(object));
}
System.out.println(map.get(“name”);

以下是一种非常规方法

String str = "name=";
System.out.println(temp.substring(temp.indexOf(str) + str.length()));
当然,它可以以更一般的方式实施:

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

这里有一个非一般的方法

String str = "name=";
System.out.println(temp.substring(temp.indexOf(str) + str.length()));
当然,它可以以更一般的方式实施:

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

我会把整个参数放在一个数组中,这样很容易得到值

HashMap<String, String> valuemap = new HashMap<String, String>();
…然后把它们放到你的HashMap中。比你有一个很好的所有价值观的集合,如果你有两个以上的价值观也更好。如果要恢复该值,请使用:

valuemap.get("acc")
valuemap.get("name")

我会把整个参数放在一个数组中,这样很容易得到值

HashMap<String, String> valuemap = new HashMap<String, String>();
…然后把它们放到你的HashMap中。比你有一个很好的所有价值观的集合,如果你有两个以上的价值观也更好。如果要恢复该值,请使用:

valuemap.get("acc")
valuemap.get("name")

您可以使用拆分函数string temp=“acc=101&name=test”;字符串[]tempParts=temp.split(“name=”);System.out.println(tempParts[1]);如果您在web环境中,框架的类可能会提供服务方法来分析URL参数,例如,该方法似乎与您可以使用split functionString temp=“acc=101&name=test”的方法类似;字符串[]tempParts=temp.split(“name=”);System.out.println(tempParts[1]);如果您在web环境中,框架的类可能会提供分析URL参数的服务方法,例如,该方法似乎与@downvoter类似,我希望看到您的评论。感谢您的宝贵评论。当然,这有助于我将来更正代码:)@downvoter,我希望看到您的评论。感谢您的宝贵评论。当然,这有助于我将来更正代码:)