【问题标题】:Extract multiple substrings from a string in JAVA/Android从 JAVA/Android 中的字符串中提取多个子字符串
【发布时间】:2011-05-28 02:25:15
【问题描述】:

在我的 Android 应用程序中,我有一个包含我的网页源的大字符串。这个使用 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);

干杯

【问题讨论】:

    标签: java android string substring extract


    【解决方案1】:

    也许我没有抓住重点,但是...

    鉴于索引x 是text.indexOf(".png"),您可以简单地使用text.substring(x-4,x);

    然后你可以text.indexOf(".png",x+4)得到你的下一个图像结束,并重复上述操作。

    如果可能存在大小写变化,您可以在搜索扩展程序之前将整个字符串更改为大写或小写。

    【讨论】:

    • 只是好奇,“delimiter+4”如何将它移动到我的字符串中的下一个图像?
    • @Pelly:是indexOf,从x+4 开始。因此搜索字符串以查找 next ".png".
    【解决方案2】:

    获得图像列表后,请执行String.split(';') 以获取images[0] = 'image.201105261318.png' 项目列表。然后你可以得到每个项目的长度并取一个String.substring(length-9,length-4) 来得到每个项目的最后4个字符。

    子字符串代码未经测试,但您可以对其进行调整以获得您所需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多