Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

number out of string in java

I have something like "ali123hgj". i want to have 123 in integer. how can i make it in java?

like image 990
Ali_IT Avatar asked Apr 04 '10 14:04

Ali_IT


People also ask

How do I convert a string to a number?

You convert a string to a number by calling the Parse or TryParse method found on numeric types ( int , long , double , and so on), or by using methods in the System. Convert class. It's slightly more efficient and straightforward to call a TryParse method (for example, int.


2 Answers

int i = Integer.parseInt("blah123yeah4yeah".replaceAll("\\D", ""));
// i == 1234

Note how this will "merge" digits from different parts of the strings together into one number. If you only have one number anyway, then this still works. If you only want the first number, then you can do something like this:

int i = Integer.parseInt("x-42x100x".replaceAll("^\\D*?(-?\\d+).*$", "$1"));
// i == -42

The regex is a bit more complicated, but it basically replaces the whole string with the first sequence of digits that it contains (with optional minus sign), before using Integer.parseInt to parse into integer.

like image 146
polygenelubricants Avatar answered Sep 27 '22 19:09

polygenelubricants


Use the following RegExp (see http://java.sun.com/docs/books/tutorial/essential/regex/):

\d+

By:

final Pattern pattern = Pattern.compile("\\d+"); // the regex
final Matcher matcher = pattern.matcher("ali123hgj"); // your string

final ArrayList<Integer> ints = new ArrayList<Integer>(); // results

while (matcher.find()) { // for each match
    ints.add(Integer.parseInt(matcher.group())); // convert to int
}
like image 23
Pindatjuh Avatar answered Sep 27 '22 18:09

Pindatjuh