我编写了这个简单的代码来提取一些玩家的 ID...但是,不需要整个输出,我需要最后 4 位数字,这是我的代码
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class ListLinks {
public static void main(String args[]) throws IOException {
Document doc;
try {
doc = Jsoup.connect("http://sports.yahoo.com/mlb/teams/bal/roster/").get();
Elements urls = doc.select("a[data-pid]");
for (Element url : urls) {
System.out.println(url.attr("data-pid"));
}
} catch (IOException ex) {
Logger.getLogger(ListLinks.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
这是输出
mlb.p.8117
mlb.p.9699
etc...
所以我需要从输出中删除前 6 位数字..请告诉我如何...这是我第一次编程!
提前致谢!!
最佳答案
您可以通过不同的方式解决这个问题:
String pid = url.attr("data-pid");
- 分割字符串并检索最后一组字符(在本例中是第二组,因为它从 0 开始):
String result = pid.split("\\.")[2];
当您需要存储其他组或与其他组一起执行某些操作时很有用。
您必须确保字符串包含点符号
- 从点符号和子字符串的索引到字符串末尾搜索点符号和子字符串的最后出现位置:
String result = pid.substring(pid.lastIndexOf(".")+1);
如果您只需要最后一组字符,则很有用。
您必须确保字符串包含点符号
- 使用正则表达式:
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(pid);
String result = null;
while (m.find()) {
result = m.group();
}
从我的角度来看,这是最安全的方法。
关于java - 从输出 jsoup 中删除数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29731943/