更改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,但找不到任何东西。
谢谢。
最佳答案
如果我正确理解,您正在尝试替换=
和h
的w
符号后的值。
您可以使用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=123
或w=1234
不存在,甚至可以使用;)