-1

I have a string that contains data with different values, something like

String values = "firstname=john&lastname=fob&email=something@something.com&Telephone=3874813781"

FYI: & is the separator.

I want to make a new string for all these parameters - firstname, lastname, email and etc... - and I want the string to contain only the value of it specific parameter something like

String firstname = "john";

and same for lastname and so on. I think it is not better to use

String firstname = values.indexOf(10);

because I don't know how many characters would the username contain so I could go for lastname an so, I was wondering if there is a better way for getting the values of each parameter and assign it to a new string.

Pshemo
  • 122,468
  • 25
  • 185
  • 269
jacky
  • 199
  • 1
  • 4
  • 15

4 Answers4

1

You can use split method. Use values.split("&") , this will return you an array of Strings.

String values = "firstname=john&lastname=fob&email=something@something.com&Telephone=3874813781";
String[] parameters = values.split("&");
System.out.println(parameters[0]); // Prints firstname=john
Priyansh Goel
  • 2,660
  • 1
  • 13
  • 37
1

Use String values_seperated[] = values.split("&"); Which will give you an array of Strings.

so here elements of values_seperated[] array will be:

values_seperated[0]:firstname=john
values_seperated[1]:lastname=fob
values_seperated[2]:email=something@something.com
values_seperated[3]:Telephone=3874813781
Sanket Makani
  • 2,491
  • 2
  • 15
  • 23
1
String[] split = values.split("&");

String firstname = null, lastname = null, email = null, Telephone = null;

for (String string : split) {
    String[] parts = string.split("=");
    String key = parts[0];
    String value = parts[1];

    switch (key) {
    case "firstname":
        firstname = value;
        break;
    case "lastname":
        lastname = value;
        break;
    case "email":
        email = value;
        break;
    case "Telephone":
        Telephone = value;
        break;
    }
}
Henry
  • 342
  • 1
  • 2
  • 13
0

There's a function in java that separates java tokens based on a delimiter that you want. The following solution assumes that the same sequence of parameters in the values string will be used:

    String values =  "firstname=john&lastname=fob&email=something@something.com&Telephone=3874813781";

    StringTokenizer st = new StringTokenizer(values,"&");
    String nextToken; 

    nextToken=st.nextToken();
    String firstname=nextToken.substring(nextToken.indexOf("=")+1);

    nextToken=st.nextToken();
    String lastname=nextToken.substring(nextToken.indexOf("=")+1);

    nextToken=st.nextToken();
    String email=nextToken.substring(nextToken.indexOf("=")+1);

    nextToken=st.nextToken();
    String Telephone=nextToken.substring(nextToken.indexOf("=")+1);

    System.out.println(firstname+" "+lastname+" "+email+" "+Telephone); 

StringTokenizer(values,"&") splits the String into multiple tokens Then one by one you can assign the values to the respective variables.

st.nextToken() fetches tokens one by one

Kartik Shenoy
  • 308
  • 3
  • 14