Java регулярное выражение отделить числа от строк - PullRequest
2 голосов
/ 08 сентября 2010

У меня есть строки вроде:

BLAH00001

DIK-11

DIK-2

MAN5

, поэтому всеСтроки являются своего рода (последовательность любых символов) + (последовательность чисел)

, и я хочу что-то вроде этого:

1

11

2

5

, чтобы получить эти целочисленные значения, я хотел разделить последовательность символов и последовательность чисел и сделать что-то вроде Integer.parseInt(number_sequence)

Есть ли что-то, что делаетэто работа?

привет

Ответы [ 4 ]

4 голосов
/ 08 сентября 2010

Попробуйте это:

public class Main {
    public static void main(String[]args) {
        String source = "BLAH00001\n" +
                "\n" +
                "DIK-11\n" +
                "\n" +
                "DIK-2\n" +
                "\n" +
                "MAN5";
        Matcher m = Pattern.compile("\\d+").matcher(source);
        while(m.find()) {
            int i = Integer.parseInt(m.group());
            System.out.println(i);
        }
    }
}

, который производит:

1
11
2
5
2 голосов
/ 09 сентября 2010
String[] a ={"BLAH00001","DIK-11","DIK-2","MAN5"};
 for(String g:a)
  System.out.println(Integer.valueOf(g.split("^[A-Z]+\\-?")[1]));

 /*******************************  
   Regex Explanation :
     ^  --> StartWith
    [A-Z]+ --> 1 or more UpperCase
    \\-? --> 0 or 1 hyphen   
*********************************/
1 голос
/ 08 сентября 2010
 Pattern p = Pattern.compile("^[^0-9]*([0-9]+)$");
 Matcher m = p.matcher("ASDFSA123");
 if (m.matches()) {
    resultInt = Integer.parseInt(m.group(1)));
 }
0 голосов
/ 08 сентября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...