java提取字符串中的手机号和固话号码
时间: 2024-04-05 09:33:25 浏览: 22
可以使用正则表达式来提取字符串中的手机号和固话号码,以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneExtractor {
public static void main(String[] args) {
String text = "我的手机号是:13812345678,固话是:010-12345678,你的呢?";
Pattern pattern = Pattern.compile("(1[3456789]\\d{9})|(\\d{3}-\\d{8}|\\d{4}-\\d{7})");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
String phoneNumber = matcher.group();
System.out.println("提取到的号码是:" + phoneNumber);
}
}
}
```
在上面的代码中,我们使用了正则表达式 `(1[3456789]\\d{9})|(\\d{3}-\\d{8}|\\d{4}-\\d{7})` 来匹配手机号和固话号码。其中,`(1[3456789]\\d{9})` 表示匹配手机号,`\\d{3}-\\d{8}|\\d{4}-\\d{7}` 表示匹配固话号码,固话号码的格式可以是 `xxx-xxxxxxxx` 或者 `xxxx-xxxxxxx`。
同样使用 `Pattern.matcher()` 方法可以获得一个 `Matcher` 对象,然后使用 `Matcher.find()` 方法来查找字符串中是否有匹配的号码。如果找到了,可以使用 `Matcher.group()` 方法来获取匹配到的号码。
需要注意的是,上面的代码中使用了 `Matcher.find()` 方法来查找所有匹配的号码,因此可能会提取到多个号码。如果你只需要提取第一个号码,可以使用 `Matcher.find()` 方法来查找第一个匹配的号码,然后使用 `Matcher.group()` 方法来获取该号码。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)