Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

let's say i have string like that:

eXamPLestring>1.67>>ReSTOfString

my task is to extract only 1.67 from string above.

I assume regex will be usefull, but i can't figure out how to write propper expression.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
745 views
Welcome To Ask or Share your Answers For Others

1 Answer

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 )


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...