我使用以下代码来分割 (<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>)
. 最后我需要两个点,每个点有两个值。
如何做到这一点?
2条答案
按热度按时间g6baxovj1#
再看一看,一个有效的解决方案就像这里的代码示例,它只会忽略不是一系列数字的所有值。
但是,如果效率不是您所担心的问题,那么多重分割解决方案就足以满足您的需要。
wkyowqbh2#
如果您使用的是java>=9,那么可以使用matcher上的results()方法来获取matchresult流并生成点对象列表:
结果:
点:[java.awt.point[x=1,y=2],java.awt.point[x=3,y=4],java.awt.point[x=5,y=6],java.awt.point[x=500,y=600],java.awt.point[x=1000,y=2000]]
正则表达式模式获取不带括号的坐标。然后在Map法中采用分割法得到x、y坐标,生成点目标。