更改w =数字和h =数字的最简单方法是什么?

网址示例:

https://test.com/photos/226109/test-photo-226109.jpeg?w= 1260&h = 750&auto = compress&cs = tinysrgb&fit = crop

我必须动态更改加粗部分。

我可以这样提取w的值:

  s = s.substring(s.indexOf("=") + 1, s.indexOf("&"));


但是我该如何改变呢?
我尝试搜索Stackoverflow,但找不到任何东西。

谢谢。

最佳答案

如果我正确理解,您正在尝试替换=hw符号后的值。

您可以使用RegEx轻松执行以下操作:

"https://test.com/photos/226109/test-photo-226109.jpeg?w=1260&h=750&auto=compress&cs=tinysrgb&fit=crop"
                        .replaceAll("w=\\d+", "w=NEW_VALUE").replaceAll("&h=\\d+", "&h=NEW_VALUE")


上面发生的事情是,我们首先找到与w=AnyNumberHere匹配的模式,然后将整个部分替换为w=NEW_VALUE。同样,我们将&h=AnyNumberHere替换为&h=NEW_VALUE

此解决方案不受长度限制,因此,如果URL具有可变长度,则此方法仍然有效,例如,如果值h=123w=1234不存在,甚至可以使用;)

10-08 14:59