我有一个问题,我将有一个模板,如:
"Tada lala at ha on EEEE (MMM d)."
需要传递给DateTimeFormatter.format()
所以我们需要引用像
这样的文字文本" 'Tada lala at' ha 'on' EEEE (MMM d)."
因此日期模式可能会随着时间的推移而发展:
"ha 'on' EEEE 'tada lala at' ha 'on' MMM, d"
我正在展示使用的真实代码:
Date myDate; // which I just computed.
String template = getTemplateFromDB();//" 'Tada lala at' ha 'on' EEEE (MMM d)."
String formattedStr = DateTimeFormatter(date, template);
因此,通过进化,我的意思是模板字符串将被演化,但它将驻留在数据库中,因此代码将不会耦合。
因此,我需要找到一种算法,该算法只将文字文本放在单引号中,但仅保留(EEEE)等日期模式。什么是表现最佳的算法?
我有一个草案算法:
String myRegEx = "(EEEE|MMM|d|...)";
ArrayList<Integer> positionsFound; // a list that is populated with the index positions of the myRegEx patterns are located.
String[] splittedText = myStr.split(); // " 'Tada lala at' ha 'on' EEEE (MMM d)."
StringBuffer sbuf = new StringBuffer();
for (int i = 0;i < splittedText.length;i++) {
if (!positionsFound.contains(i)) {
splittedText[i] = "'"+splittedText[i]+"'";
}
sbuf.append(splittedText[i]+" ");
}
return sbuf.toString();