2016-08-19 43 views
0

我想從字符串中提取數值。從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,但它不會在mysql工作臺中提取數字。但它返回零行。

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

我想用java找到它。將它存儲在結果集中。我也想確保手機號碼應該插入第2列。任何人都可以指導我做這件事嗎?

回答

1

我想在Java正則表達式中也應該走的路。

// 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

謝謝你的幫助。但是我有一個龐大的數據,一個字符串中的數字可以在任何地方。我需要從整個字符串中獲取這樣的數字。並將它們插入另一列。 –