gpt4 book ai didi

java - Java 正则表达式匹配 9 月 15 日星期三 (XXX, XXX ##) 的单元测试未通过

转载 作者:行者123 更新时间:2023-11-30 03:16:22 24 4
gpt4 key购买 nike

我正在尝试匹配一个与“XXX,XXX ##”等内容匹配的正则表达式

所以我尝试了这个:"\\w{3},\\s\\w{3}\\s\\d{2}" 但它不起作用

包括完整的代码,这是我试图测试的方法:

public String formatDate(String instruction) {
Date date = new Date();

SimpleDateFormat format = new SimpleDateFormat();

if (instruction.equalsIgnoreCase("short")) {
format = new SimpleDateFormat("EEE, MMM yy");
}
else if (instruction.equalsIgnoreCase("full")) {
format = new SimpleDateFormat("EEEE, MMMM yyyy");
}

String dateToString = format.format(date);
//Log.e("exe", dateToString);

return dateToString;
}

这是单元测试:

public class SchedulerDateTest {
SchedulerDate schedulerDate;

@Before
public void setUp() throws Exception {
schedulerDate = new SchedulerDate();
}

//....

@Test
public void testFormatDate() throws Exception {
assertTrue("if parameter is short I want to receive the date in a short format for example: Wed, Sep 15",
schedulerDate.formatDate("short")
.matches("\\w{3},\\s\\w{3}\\s\\d{2}");
}
}

最佳答案

编写问题时,请使其最小、完整且可验证。请参阅https://stackoverflow.com/help/mcve

这是以上所有内容:

Date date = new Date();
System.out.println("date = " + date);
SimpleDateFormat format = new SimpleDateFormat("EEE, MMM yy");
String dateToString = format.format(date);
System.out.println("dateToString = '" + dateToString + "'");
System.out.println("matches = " + dateToString.matches("\\w{3},\\s\\w{3}\\s\\d{2}"));

输出

date = Wed Sep 09 22:16:21 EDT 2015
dateToString = 'Wed, Sep 15'
matches = true

通过打印中间值,您将能够看到哪里可能出错。

这可能是您的语言问题,例如如果我切换区域设置:

Locale.setDefault(Locale.CANADA_FRENCH);

输出

date = Wed Sep 09 22:19:17 EDT 2015
dateToString = 'mer., sept. 15'
matches = false

关于java - Java 正则表达式匹配 9 月 15 日星期三 (XXX, XXX ##) 的单元测试未通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com