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

Android新手求助:如何用Matcher和Pattern替换URL中两处字符串

使用Matcher和Pattern完成URL替换的Android实现

嘿,作为Android开发新手,你要的这个URL替换需求用Matcher和Pattern完全能搞定,我给你拆解成清晰的代码示例,保证你一看就懂!

咱们先明确核心需求:

  • 把URL里的/vp/替换成/
  • 要是URL里存在/s150x150/,就把它替换成/s720x720/

Kotlin 实现代码

import java.util.regex.Pattern

fun modifyImageUrl(originalUrl: String): String {
    var modifiedUrl = originalUrl
    
    // 第一处替换:将"/vp/"替换为"/"
    val vpPattern = Pattern.compile("/vp/")
    val vpMatcher = vpPattern.matcher(modifiedUrl)
    modifiedUrl = vpMatcher.replaceAll("/")
    
    // 第二处替换:检查到"/s150x150/"时替换为"/s720x720/"
    val sizePattern = Pattern.compile("/s150x150/")
    val sizeMatcher = sizePattern.matcher(modifiedUrl)
    if (sizeMatcher.find()) {
        modifiedUrl = sizeMatcher.replaceAll("/s720x720/")
    }
    
    return modifiedUrl
}

// 测试一下效果
fun main() {
    val originalUrl = "cd.com/vp/3070d0210e464e/5AEFB3ED/t51.2885/s150x150/24845474_1790806444289980_66798452736_n.jpg"
    val newUrl = modifyImageUrl(originalUrl)
    println(newUrl) // 输出结果:cd.com/3070d0210e464e/5AEFB3ED/t51.2885/s720x720/24845474_1790806444289980_66798452736_n.jpg
}

Java 实现代码

要是你习惯用Java开发,对应的版本是这样的:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class UrlModifier {
    public static String modifyImageUrl(String originalUrl) {
        String modifiedUrl = originalUrl;
        
        // 替换"/vp/"为"/"
        Pattern vpPattern = Pattern.compile("/vp/");
        Matcher vpMatcher = vpPattern.matcher(modifiedUrl);
        modifiedUrl = vpMatcher.replaceAll("/");
        
        // 检查并替换"/s150x150/"为"/s720x720/"
        Pattern sizePattern = Pattern.compile("/s150x150/");
        Matcher sizeMatcher = sizePattern.matcher(modifiedUrl);
        if (sizeMatcher.find()) {
            modifiedUrl = sizeMatcher.replaceAll("/s720x720/");
        }
        
        return modifiedUrl;
    }

    public static void main(String[] args) {
        String originalUrl = "cd.com/vp/3070d0210e464e/5AEFB3ED/t51.2885/s150x150/24845474_1790806444289980_66798452736_n.jpg";
        String newUrl = modifyImageUrl(originalUrl);
        System.out.println(newUrl);
    }
}

简单解释下逻辑

  • 第一处替换:用Pattern.compile()创建匹配规则,再通过Matcher.replaceAll()直接完成全局替换(哪怕/vp/出现多次也能处理)。
  • 第二处替换:先用sizeMatcher.find()判断URL里有没有目标字符串,只有存在的时候才执行替换,避免对不符合条件的URL做无效操作。

其实用字符串的replace()方法也能实现,但既然你明确要求用Matcher和Pattern,上面的代码完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:32:32