2016-08-19 5 views
0

Я хочу извлечь числовые значения из строки.Извлечь числовые значения из значения String в java

например. У меня есть ценности, как это:

abc9856412368def    
9812345678abc   
abc9812345678  
abc256789def  
4567abc  

Я хочу вывода, как это (в трех колонках):

Col1   Col2   Col3 
abc def 9856412368 
abc  9812345678 
abc  9812345678 
abc def      256789 
abc       4567 

Если число 10 или более 10, то храните его в col2 еще в col3. Я пробовал использовать REGEXP, но он не извлекает номер в workbench mysql. Но он возвратил нулевые строки.

select first_name 
from mytable 
where First_Name regexp '^[0-9]+$' and First_Name!="" 

Я собираюсь найти его с помощью java. Хранится в наборе результатов. Я также хочу убедиться, что номера мобильных телефонов должны быть вставлены в колонку 2. Может ли кто-нибудь помочь мне в этом?

ответ

1

Я думаю, что также в Java Regex должен быть путь.

// Extract numbers from String 
Pattern p1 = Pattern.compile("-?\\d+"); 
// Extract words from String 
Pattern p2 = Pattern.compile("-?\\D+"); 

Matcher m1 = p1.matcher("abc9856412368def"); 
Matcher m2 = p2.matcher("abc9856412368def"); 
while (m1.find()) { 
    System.out.println(m.group()); // Prints 9856412368 
} 
while (m2.find()) { 
    System.out.println(m.group()); // Prints abc and def 
} 

Теперь вам нужно только форматировать выход.

+0

Благодарим за помощь. Но у меня огромные данные, число внутри строки может быть в любом месте. Мне нужно получить такие числа из всей строки. и вставьте их в другие столбцы. –

Смежные вопросы