Parse Query String

Medium Real-World Scenarios
Parse a URL query string into key/value pairs — needed when handling deep links and navigation parameters in an app.

Sample input

name=john&age=30&city=delhi

Sample output

name: john age: 30 city: delhi

Solution

query = "name=john&age=30&city=delhi"
for pair in query.split("&"):
    key, value = pair.split("=")
    print(f"{key}: {value}")
const query = "name=john&age=30&city=delhi";
for (const pair of query.split("&")) {
  const [key, value] = pair.split("=");
  console.log(`${key}: ${value}`);
}
public class Main {
    public static void main(String[] args) {
        String query = "name=john&age=30&city=delhi";
        for (String pair : query.split("&")) {
            String[] kv = pair.split("=");
            System.out.println(kv[0] + ": " + kv[1]);
        }
    }
}
fun main() {
    val query = "name=john&age=30&city=delhi"
    for (pair in query.split("&")) {
        val (key, value) = pair.split("=")
        println("$key: $value")
    }
}
let query = "name=john&age=30&city=delhi"
for pair in query.split(separator: "&") {
    let kv = pair.split(separator: "=")
    print("\(kv[0]): \(kv[1])")
}
void main() {
  const query = "name=john&age=30&city=delhi";
  for (final pair in query.split('&')) {
    final kv = pair.split('=');
    print('${kv[0]}: ${kv[1]}');
  }
}
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
    string query = "name=john&age=30&city=delhi";
    stringstream ss(query);
    string pair;
    while (getline(ss, pair, '&')) {
        int eq = pair.find('=');
        cout << pair.substr(0, eq) << ": " << pair.substr(eq + 1) << endl;
    }
    return 0;
}
#include <stdio.h>
#include <string.h>

int main() {
    char query[] = "name=john&age=30&city=delhi";
    char *pair = strtok(query, "&");
    while (pair != NULL) {
        char *eq = strchr(pair, '=');
        *eq = '\0';
        printf("%s: %s\n", pair, eq + 1);
        pair = strtok(NULL, "&");
    }
    return 0;
}