You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中无硬编码解析URL地址并拆分各组成部分?

Kotlin 无硬编码解析URL

在Kotlin中可以利用JDK自带的java.net.URI类安全解析URL,无需硬编码拆分字符串,以下是针对目标URL的实现代码:

import java.net.URI

fun main() {
    val urlString = "https://googledroids.com/post.html?limit=25&since=1374196005&md5=d8959d12ab687ed5db978cb078f1e&time=0dfdbac117"
    val uri = URI(urlString)

    // 提取协议
    val scheme = uri.scheme // 结果: https
    // 提取域名
    val host = uri.host // 结果: googledroids.com
    // 提取路径
    val path = uri.path // 结果: /post.html
    // 提取并解析参数键值对
    val params = uri.query?.split("&")?.associate { param ->
        val (key, value) = param.split("=", limit = 2)
        key to value
    } ?: emptyMap()
    // params 内容: {limit=25, since=1374196005, md5=d8959d12ab687ed5db978cb078f1e, time=0dfdbac117}

    // 验证输出
    println("协议: $scheme")
    println("域名: $host")
    println("路径: $path")
    println("参数: $params")
}

代码说明

  • URI类会自动处理URL的结构拆分,避免手动截取字符串带来的错误(比如参数顺序变化、特殊字符转义等)。
  • split("=", limit = 2)确保参数值中包含=符号时不会被错误拆分。
  • 用?: emptyMap()处理URL无参数的情况,避免空指针异常。

内容的提问来源于stack exchange,提问作者Jorgesys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:40:39