Groovy 如何查找、删除和读取此符号${}中的文本
用户输入的示例数据。Groovy 如何查找、删除和读取此符号${}中的文本,groovy,Groovy,用户输入的示例数据。 预订/${mm}/${yyyy} ${yyyy}/booking/${mm} 预订/${mm}${yyyy}/00 我的问题是如何取出${}并读取其中包含的内容,然后根据格式替换为月/年 因此,保存到数据库后,输出应为“booking/10/2013” 我正在使用Grails。希望能用Java/groovy解决这个问题。我只是解决了这个问题在这里输入代码 import java.text.SimpleDateFormat; import java.util.Date; im
我正在使用Grails。希望能用Java/groovy解决这个问题。我只是解决了这个问题
在这里输入代码
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String bookingNo1 = "booking/${mm}/${yyyy}";
String bookingNo2 = "${yyyy}/booking/${mm}";
String bookingNo3 = "booking/${mm}${yyyy}/00";
String newDate = null;
newDate = getDataString(bookingNo1);
System.out.println(newDate);
newDate = getDataString(bookingNo2);
System.out.println(newDate);
newDate = getDataString(bookingNo3);
System.out.println(newDate);
}
public static String getTimeString(String pattern) {
SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern(pattern);
return format.format(new Date());
}
public static String getDataString(String dateInput) {
String dateString = dateInput;
String regex = "\\$\\{(mm|yyyy|DD|MM)\\}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(dateInput);
while (matcher.find()) {
String datePattern = matcher.group()
.replaceAll("(\\$|\\{|\\})", "");
dateString = dateString.replaceAll("\\$\\{" + datePattern + "\\}",
getTimeString(datePattern));
}
return dateString;
}
}您可以使用Groovy执行此操作:
// Given these inputs
def inputs = [ 'booking/${mm}/${yyyy}',
'${yyyy}/booking/${mm}',
'booking/${mm}${yyyy}/00' ]
// Make a binding for 'mm' and 'yyyy'
def date = new Date()
def binding = [ mm : date.format( 'MM' ),
yyyy : date.format( 'yyyy' ) ]
// Then process each input with STE and print it out
inputs.each { input ->
println new groovy.text.SimpleTemplateEngine()
.createTemplate( input )
.make( binding )
}
上面印着:
booking/10/2013
2013/booking/10
booking/102013/00
只是字面上的
String#替换(String,String)
it?我的意思是用户如何在某个字段中键入。