我想从url字符串中提取子字符串。这是url:
https://test.tech.com/public/pi?id=635106391297495358_0_280740c3f281419b954b309b45a41d77-M_M_0_56b6f628b90b4146abbdba1de9095657
我想开始从id中提取=
635106391297495358_0_280740c3f281419b954b309b45a41d77
直到破折号(-),然后提取剩余的子字符串
M_M_0_56b6f628b90b4146abbdba1de9095657
请注意,确切的域不是上面的域,这只是一个示例。
有什么想法吗?我非常感谢你的帮助。谢谢
更新:
这就是我到目前为止所做的:
final URI uri = URI.create(result.getContents());
final String path = uri.getPath();
path.substring(path.lastIndexOf('-') + 1);
Log.e("EXTRACTED", "" + path);
但它只是公开了/pi。
final URI uri = URI.create("https://test.tech.com/public/pi?id=635106391297495358_0_280740c3f281419b954b309b45a41d77-M_M_0_56b6f628b90b4146abbdba1de9095657");
String queryString = uri.getQuery();
String subString = queryString.substring(queryString.lastIndexOf('-') + 1);
System.out.println("EXTRACTED " + subString);
生产:
提取M_M_0_56B6F628B90B4146Abbda1De9095657
一个主要问题是:
path.substring(path.lastIndexOf('-') + 1);
不会修改变量路径。原因是字符串是不可变的,对它们的任何更改都会在内部创建一个新字符串。如果要获得新的子字符串引用,则需要将其分配回路径
:
path = path.substring(path.lastIndexOf('-') + 1);
现在您可以尝试更多的子字符串选项
首先,uri。getPath()
返回路径组件,但您要查找的是?,因此,您可能想要尝试的是uri。getQuery()
。
至于搭配:
Pattern p = Pattern.compile("id=(.+?)-");
Matcher m = p.matcher(uri.getQuery());
if (m.find()) {
System.out.println(m.group(1));
}
没有经过测试,但我认为它应该可以工作。(.?)
是一个捕获组,它尝试在id=
和-
之间匹配字符。
问题内容: 我正在尝试找到一种可靠的解决方案,以从字符串中提取URL。我有一个站点,用户可以在其中回答问题,并且可以在源框中输入他们的信息源,并允许他们输入网址。我想提取该URL并使其成为超链接。类似于Yahoo Answers的操作方式。 有谁知道可以做到这一点的可靠解决方案? 我发现的所有解决方案都适用于某些URL,但不适用于其他URL。 谢谢 问题答案: 约翰·格鲁伯(John Gruber
在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。 1. substring(int beginIndex) 形式 此方式用于提取从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。例如: 2. substring(int beginIndex,int e
所谓字符串,指的就是字符的序列或者“串”。我们要在字符串上执行的第一个操作是提取所有字符中的一个。C++使用方括号([和])执行该操作: apstring fruit = "banana"; char letter = fruit[1]; cout << letter << endl; 表达式fruit[1]表明我们要从字符串变量fruit中取得编号为1的字符,并将结果保存在字符变量letter
问题内容: 我有一个字符串,我想提取字符串中的(唯一)数字序列。 示例:helloThisIsA1234Sample。我想要1234 假设数字序列在字符串中只会出现一次,但不会出现在同一位置。 (对于那些会问的人,我有一个服务器名称,需要在其中提取一个特定的数字) 我想使用Apache commomns中的StringUtils类。 谢谢! 问题答案: 使用此代码号仅包含所需的输出。
我有以下字符串 从上面,我需要提取下面的文字 第一个数字和文本之间总是有一个空格,所以2129和This is page1之间有一个空格。有时第一个数字被省略,就像2129不见了。文本和下一个数字之间总是有一个空格,所以在This is a Page1和6754001之间有一个空格,有时可能有两个空格。我只需要提取这些线这些线总是从空格开始,所以它可以 它们的后面总是有一个空格,有时是一个空格,有