如何使用groovy和store元素作为arraylist检索某些文件元素

时间:2017-07-07 18:37:08

标签: arrays arraylist groovy

我是groovy编程的新手,我正在尝试使用groovy来检索随机出现在文本文件中的电话号码,然后将这些值存储在我的groovy程序中的arraylist中。文本文件的示例如下:

代码行 你好,你好111-111-1111 猫狗狗猫 999-999-9999 另一行代码777-777-7777

我想要显示的输出: 111-111-1111 999-999-9999 777-777-7777

我知道如何引用该文件并检索所有代码行和特定数字/单词等,但我不确定只检索文本文件中存在的电话号码的常规方法

1 个答案:

答案 0 :(得分:0)

将元素添加到列表的最简单方法是+=运算符。

下面是一个示例程序,它从中提取电话号码 多行字符串的每个源行,将它们收集在列表中, 并打印清单。

def src = '''\
Line of code Hello how are you 111-111-1111 Cat dog dog cat 999-999-9999.
I'm fine and how are you 111-111-2222 Cat dog dog cat 999-999-8888.
No phone number here.
Another line of code  777-777-8888\
'''
def pat = ~/\b\d{3}-\d{3}-\d{4}\b/
def phones = []
def cnt = 0
src.eachLine{
  def matcher = (it =~ pat)
  def mCnt = matcher.getCount()
  printf("Row %d: %s / %d phones.\n", ++cnt, it, mCnt)
  for (i = 0; i < mCnt; ++i) {
    phones += matcher[i]
  }
}
printf("%d phones: %s.\n", phones.size(), phones.join(', '))