Java Scanner findWithinHorizon() 方法

定义和用法

findWithinHorizon() 方法在指定数量的字符范围内搜索由 Pattern 对象或字符串提供的正则表达式的第一个匹配项。如果没有找到匹配项,则返回 null

搜索的字符数量由 horizon 参数指定。如果 horizon 设置为零,则搜索将继续进行而不受限制。

如果找到了匹配项,扫描器会前进到匹配项之后的第一个字符。

如需了解有关正则表达式的更多信息,请参阅我们的 Java 正则表达式教程

实例

在一行文本中查找电子邮件地址:

// 创建一个扫描器对象
Scanner myObj = new Scanner("请发送电子邮件至 info@example.com 以获取更多详情。");

// 使用模式在不受限制的范围内获取电子邮件地址
String email = myObj.findWithinHorizon("[a-zA-Z]+@[a-zA-Z]+\\.[a-zA-Z]{2,}", 0);

// 如果找到电子邮件,则显示它
if (email != null) {
  System.out.println(email);
} else {
  System.out.println("未找到电子邮件");
}

// 注意:通常你会想要关闭扫描器,但在这个简单示例中为了简洁而省略了。
// 在实际应用中,请确保在不再需要扫描器时调用 myObj.close()。

语法

其中之一:

public String findWithinHorizon(Pattern pattern, int horizon)
public String findWithinHorizon(String pattern, int horizon)

参数

参数 描述
pattern 必需。字符串或 Pattern 对象。指定搜索中使用的正则表达式。
horizon 必需。指定搜索的前向限制。如果值为零,则没有限制。

技术细节

返回: 包含匹配文本的字符串,如果没有找到匹配项,则返回 null
抛出:
  • IllegalStateException - 如果扫描器已被关闭
  • IllegalArgumentException - 如果 horizon 参数为负数