从java中的String值获取数字值

时间:2016-08-19 05:44:40

标签: java mysql sql resultset

我想从字符串中提取数值。

例如。我有这样的价值观:

abc9856412368def            
9812345678abc           
abc9812345678       
abc256789def      
4567abc    

我想像这样输出(在三列中):

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

如果number为10或10以上,则将其存储在col3中的col2中。我尝试过使用REGEXP,但它没有在mysql工作台中提取数字。但它返回零行。

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

我正在考虑使用java找到它。在结果集中存储它。我还想确保将手机号码插入第2栏。任何人都可以为此指导我吗?

1 个答案:

答案 0 :(得分: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
}

现在您只需要格式化输出。