Java 与ArrayList字符串变量不工作的模式匹配
这是我的密码。我将日期存储在dates ArrayList中,它看起来像:[020406020407…],我正在搜索类似以下内容的文件中的模式:Java 与ArrayList字符串变量不工作的模式匹配,java,regex,arraylist,Java,Regex,Arraylist,这是我的密码。我将日期存储在dates ArrayList中,它看起来像:[020406020407…],我正在搜索类似以下内容的文件中的模式: c001z020102 c002z020103 ... 代码: 所以我在代码中使用了类似matches的方法,我试图添加tmp变量来组合这个模式,这样我就可以从我的文件中获得选定的结果。如果我使用像[c]{1}[0-9]{3}[z]{1}[0-9]{2}[0-9]{2}[0-9]{2}这样的标准模式,它是有效的,但是每次我放置tmp时,我都会得到返回
c001z020102
c002z020103
...
代码:
所以我在代码中使用了类似matches的方法,我试图添加tmp变量来组合这个模式,这样我就可以从我的文件中获得选定的结果。如果我使用像[c]{1}[0-9]{3}[z]{1}[0-9]{2}[0-9]{2}[0-9]{2}这样的标准模式,它是有效的,但是每次我放置tmp时,我都会得到返回的空arrayList:(我使用jodaTime来计算两个日期之间的天数,并将其存储在dates arrayList中:
public void countDatesBetween()
{
int days = Days.daysBetween(dataPierwsza, dataOstatnia).getDays();
for (int i = 0; i <= days; i++)
{
DateTime d = dataPierwsza.withFieldAdded(DurationFieldType.days(), i);
dates.add(d.toString("yyMMdd"));
}
}
public void countdates介于()之间
{
int days=days.daysBetween(dataPierwsza,dataOstatnia).getDays();
对于(int i=0;i consuddatesBevering)创建一个数组列表(dates.toString(“yyMMdd”),看起来像:[140606140607140608]。然后我想用这个模式在文件中搜索c001z,它是“[c]{1}[0-9]{3}[z]{1}”然后从tmp中获取所选日期,它基本上是迭代日期ArrayList。所以它应该是这样的,例如:c001z140606--->在文件中找到它并返回xmlCodes字符串ArrayList,但它只是返回空白ArrayList。您的问题与行中的模式无关。matches()
语句。您需要交换内部/外部循环,否则您将只尝试匹配第一个日期
private void printReaderContent(BufferedReader reader) throws IOException {
String line = null;
while ((line = reader.readLine()) != null) {
for (String tmp : dates) {
if (line.matches("[c]{1}[0-9]{3}[z]{1}" + tmp)) {
xmlCodes.add(line);
break;
}
}
}
System.out.println(xmlCodes);
}
您的问题与line.matches()
语句中的模式无关。您需要交换内部/外部循环,否则您将只尝试匹配第一个日期
private void printReaderContent(BufferedReader reader) throws IOException {
String line = null;
while ((line = reader.readLine()) != null) {
for (String tmp : dates) {
if (line.matches("[c]{1}[0-9]{3}[z]{1}" + tmp)) {
xmlCodes.add(line);
break;
}
}
}
System.out.println(xmlCodes);
}
我真的不清楚你想做什么或你看到了什么-这会更容易帮助你解决问题。(特别是,我看不出countdates之间的与问题的其余部分有什么关系。)不要把信息放在评论中。总是更新你的问题而不是标题。我不太清楚你想做什么或你看到了什么-这会更容易帮助你解决问题。(特别是,我看不出countdates之间的
与问题的其余部分有什么关系。)不要把信息放在评论里。总是更新你的问题