gpt4 book ai didi

java - 如何在java中的特定单词后获取子字符串

转载 作者:行者123 更新时间:2023-11-30 06:14:11 25 4
gpt4 key购买 nike

我正在创建一个 IRC 机器人,它可以抓取 Twitter 链接并将文本发送到 channel 。这是我的代码:

if (messageIC.contains("https://twitter.com/") && messageIC.contains("/status/")) {
try {
String tweeter = message.substring(20);
String[] tweety = tweeter.split(" ");
String tweety1 = tweety[0];
String url = "https://twitter.com/" + tweety1;
Document doc = Jsoup.connect(url).get();
Element tweetText = doc.select("p.js-tweet-text.tweet-text").first();
sendMessage(channel, "Twitter: " + tweetText.text());
} catch (IOException ex) {
Logger.getLogger(Ampersand.class.getName()).log(Level.SEVERE, null, ex);
}
}

如果用户只发送链接,或者即使用户在链接后输入了一些内容,这也会起作用。但如果用户在链接前键入内容,例如“blahblahblah http://www.twitter.com/user/status/xxxx”,它就不起作用,因为它会立即开始抓取,而不是在 twitter.com 之后。

有没有办法只抓取 twitter.com 之后的子字符串?

最佳答案

您可以使用indexOfsubstring。首先通过获取 "https://twitter.com/" 的索引获取链接的开头。然后你在链接开始后寻找一个空格,如果存在链接在那里结束,否则它在 message 的末尾结束。然后我们可以使用substring方法来获取链接:

int startIndex = message.indexOf("https://twitter.com/");
int endIndex = message.indexOf(" ", startIndex);
if (endIndex == -1) {
endIndex = message.length();
}
String link = message.substring(startIndex, endIndex);

另一种简单的方法,拆分所有内容并检查它们是否符合要求:

String[] words = message.split(" ");
for (String word : words) {
if (word.startsWith("https://twitter.com/")) {
// ...
}
}

关于java - 如何在java中的特定单词后获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com