2016-08-19 42 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

谢谢你的帮助。但是我有一个庞大的数据,一个字符串中的数字可以在任何地方。我需要从整个字符串中获取这样的数字。并将它们插入另一列。 –