java - 从输出 jsoup 中删除数字

标签 java substring jsoup stringbuilder println

我编写了这个简单的代码来提取一些玩家的 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/

相关文章:

javascript - 如何获取Webview中显示内容的HTML

java - Java 语言在其整个历史中是否保持了源代码的向后兼容性?

java - Java中的字节大小枚举

java - 正则表达式非选择器

java - 没有用于解析谷歌新闻内容的输出

java - 如何使用 jsoup 从网页获取子类

java - 类的构造函数,其 super 只能通过工厂方法创建

python - 如何像 python 中的字符串一样索引 C 中的字符串?

java - .NET与Java子串操作性能对比

javascript - 使用 Lodash 在另一个字符串中使用 AND 搜索字符串数组