在我的Android应用程序中,我有一个包含我的网页源的大型String。这个使用javascript的网页在一些其他png的顶部旋转了六个透明的png。我想要做的是提取png文件名的最后4个字符,但仅限于源代码中出现的前6个图像。每个png文件名的最后4个字符是我需要的时间戳,并希望将它们读入数组。
来源:
<html><head><style>html {background: black} body {background:black;margin:0;padding:0;}</style><script>setInterval('changeImage()',1000);function changeImage() {size = images.length;if (current == size-1) { current = -1;}current++;document.getElementById('rad').src = images[current]; }current = 0;images = new Array();images[0] = 'image.201105261318.png';images[1] = 'image.201105261323.png';images[2] = 'image.201105261330.png';images[3] = 'image.201105261336.png';images[4] = 'image.201105261342.png';images[5] = 'image.201105261348.png';</script></head><body><img style="position:absolute; top: 0px; left: 0px;z-index:1;" src="http://background.png"></body></html>
期望的输出:
String Array = "1318,1323,1330,1336,1342,1348"
我尝试了很多不同的子字符串检索方法,但仍然在苦苦挣扎。我知道如何使用“.png”识别字符串的结尾但不知道如何说我只想要在该分隔符之前的4个字符..?
非常感谢任何帮助。
干杯
格雷格
编辑:
知道了!
int delimiter = source.indexOf(".png");
String imageTime1 = source.substring(delimiter-4,delimiter);
int delimiter2 = source.indexOf(".png",delimiter+4);
String imageTime2 = source.substring(delimiter2-4,delimiter2);
int delimiter3 = source.indexOf(".png",delimiter2+4);
String imageTime3 = source.substring(delimiter3-4,delimiter3);
int delimiter4 = source.indexOf(".png",delimiter3+4);
String imageTime4 = source.substring(delimiter4-4,delimiter4);
int delimiter5 = source.indexOf(".png",delimiter4+4);
String imageTime5 = source.substring(delimiter5-4,delimiter5);
int delimiter6 = source.indexOf(".png",delimiter5+4);
String imageTime6 = source.substring(delimiter6-4,delimiter6);
干杯
答案 0 :(得分:1)
获得图像列表后,请执行String.split(';')
以获取images[0] = 'image.201105261318.png'
项目列表。然后,您可以获取每个项目的长度,并使用String.substring(length-9,length-4)
获取每个项目的最后4个字符。
子字符串代码未经测试,但您可以调整它以获得您所需的内容。
答案 1 :(得分:1)
也许我错过了这一点,但......
鉴于索引x
是text.indexOf(“。png”),您只需使用text.substring(x-4,x);
。
然后你可以text.indexOf(".png",x+4)
让你的下一张图片结束,并重复上述内容。
如果可能出现案例变化,您可以在搜索扩展名之前将整个字符串更改为大写或小写。