Java 从字符串中的href标记中提取特定地址总是以.jpg结尾
我有一个字符串,看起来总是这样:Java 从字符串中的href标记中提取特定地址总是以.jpg结尾,java,string,Java,String,我有一个字符串,看起来总是这样: <a href="http://www.wcc.nrcs.usda.gov/nwcc/site?sitenum=XXX">Site Info</a> 然而,这只是将“sitenum=”的“Site”去掉,并返回“>站点信息”等所有内容 我希望它停止后,得到的数字,并点击“这是发现后的数字 我是否错误地使用了lastIndexOf 编辑--答案适用于一个url,但不适用于另一个url: http://www.wcc.nrcs.usda.g
<a href="http://www.wcc.nrcs.usda.gov/nwcc/site?sitenum=XXX">Site Info</a>
然而,这只是将“sitenum=”的“Site”去掉,并返回“>站点信息”等所有内容
我希望它停止后,得到的数字,并点击“这是发现后的数字
我是否错误地使用了lastIndexOf
编辑--答案适用于一个url,但不适用于另一个url:
http://www.wcc.nrcs.usda.gov/cgibin/wygraph-multi.pl?state=NV&wateryear=current&stationidname=19K07S
我试图从这个url中提取“状态”,但它不是提取状态,只是替换“状态”中的字母。。。代码如下:
String state = de.substring(de.lastIndexOf("state=") + 2,
de.indexOf("&", de.lastIndexOf("state=")));
状态始终为2个字母或数字0。。。当我在我的字符串上运行此命令时,我得到:
ate=0
例如。。。我不明白这是怎么回事
编辑编辑!啊!!我明白了。。。所以2必须是6,因为这是我正在比较的字符量,以便从中找到下一个字符?使用以下方法:
String src = de.substring(de.lastIndexOf("sitenum=") + 8,de.indexOf("\"",de.lastIndexOf("sitenum=")));
使用以下命令:
String src = de.substring(de.lastIndexOf("sitenum=") + 8,de.indexOf("\"",de.lastIndexOf("sitenum=")));
这不是最好的方法,但请检查它是否符合您的需要:
String src = de.substring(de.lastIndexOf("sitenum=") + "sitenum=".length(), de.indexOf(">Site Info") - 1);
这不是最好的方法,但请检查它是否符合您的需要:
String src = de.substring(de.lastIndexOf("sitenum=") + "sitenum=".length(), de.indexOf(">Site Info") - 1);
实际上,您正在尝试获取位于
“sitenum=“
”之后的文本,但是lastIndexOf(“sitenum=“)
将返回“sitenum=“
的起始索引,而不是您所期望的文本
试一试
int startindex=de.lastIndexOf(“sitenum=”)+“sitenum=”.length();
int endIndex=de.lastIndexOf(“\”>站点信息);
字符串src=de.substring(startindex,endIndex);
实际上,您正在尝试获取位于sitenum=“
之后的文本,但是lastIndexOf(“sitenum=”)
将返回sitenum=“
的起始索引,而不是您所期望的文本
试一试
int startindex=de.lastIndexOf(“sitenum=”)+“sitenum=”.length();
int endIndex=de.lastIndexOf(“\”>站点信息);
字符串src=de.substring(startindex,endIndex);
效果很好,但是如果有3个以上的数字呢?我怎么在?那很好,但是如果有3个以上的号码呢?我怎么在?那是票。那就停在“:)谢谢@Sandeep!好吧,我有点困惑了…你上面使用的代码行对于上面的url非常有效,那么为什么不换一个url呢?请参阅上面编辑的答案…这就是问题所在。停在“:)谢谢@Sandeep!好吧,我有点困惑。。。您在上面使用的代码行对于上面的url非常有用,那么为什么不针对另一个url呢?见上面编辑的答案。。。