If you want to extract all Int
's and Float
's from a String
, you can follow my solution:
private ArrayList<String> parseIntsAndFloats(String raw) {
ArrayList<String> listBuffer = new ArrayList<String>();
Pattern p = Pattern.compile("[0-9]*\.?[0-9]+");
Matcher m = p.matcher(raw);
while (m.find()) {
listBuffer.add(m.group());
}
return listBuffer;
}
If you want to parse also negative values you can add [-]?
to the pattern like this:
Pattern p = Pattern.compile("[-]?[0-9]*\.?[0-9]+");
And if you also want to set ,
as a separator you can add ,?
to the pattern like this:
Pattern p = Pattern.compile("[-]?[0-9]*\.?,?[0-9]+");
.
To test the patterns you can use this online tool: http://gskinner.com/RegExr/
Note: For this tool remember to unescape if you are trying my examples (you just need to take off one of the
)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…