java - 分割字符串以获取坐标/点

标签 java string split point

我使用以下代码来分割 (<x-coordinate>,<y-coordinate>) :

String startPointStr = InputPattern.parsePoint(args.get(0));

String[] startCoords = startPointStr.substring(1, startPointStr.length() - 1).split(",");
Point startPoint = new Point(Integer.parseInt(startCoords[0]), Integer.parseInt(startCoords[1]));

现在,我想修改代码,使其也适用于 (<x-coordinate>,<y-coordinate>),(<x-coordinate>,<y-coordinate>) 。 最后我需要两个点,每个点有两个值。

如何做到这一点?

最佳答案

再仔细看看,一个有效的解决方案就像发现的代码示例 here这将忽略所有不是一系列数字的值。

    Pattern p = Pattern.compile("\\d+");
    Matcher m = p.matcher("(100,200),(300,400)");

    ArrayList<Integer> values = new ArrayList<>();
    while(m.find())
        values.add(Integer.parseInt(m.group()));

    ArrayList<Point> points = new ArrayList<>();
    if(values.size() % 2 == 0)
        for(int i = 0; i < values.size(); i += 2)
            points.add(new Point(values.get(i), values.get(i + 1)));

    for(Point point : points)
        System.out.println(point.x + ", " + point.y);

但是,如果您不担心效率问题,则多重拆分解决方案足以满足您的目的。

关于java - 分割字符串以获取坐标/点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60216908/

相关文章:

具有多个查询的 php/mysql

regex - 正则表达式和字符串操作

ruby - 如何拆分字符串、遍历它并输出连接版本

java - 为什么我的通用方法停止工作?

java - JSR-303 附加默认验证消息

java - 在 XmlAdapter 中使用 EJB

java - 如何使用正则表达式将字符串按最后一个字符拆分?

java - 如何禁用 Jetty 的 WebAppContext 的目录列表?

php - 如何使用 PHP 分解孟加拉语文本以将所有内容保存到数据库?

regex - 在 Perl 中如何将字符串拆分为每个包含两个字符的 block ?