Java 字符串标记化
我想标记一个字符串Java 字符串标记化,java,string,Java,String,我想标记一个字符串private string requestDate=“12/12/2012 02:02:23 AM”到 12122012_020223; AM_ 如何使用stringTokenizer实现这一点 问候, requestDate = requestDate.replaceAll("/", ""); requestDate = requestDate.replaceAll(" ", "_"); requestDate = requestDate.replaceAll(":", "
private string requestDate=“12/12/2012 02:02:23 AM”代码>到
12122012_020223; AM_
如何使用stringTokenizer实现这一点
问候,
requestDate = requestDate.replaceAll("/", "");
requestDate = requestDate.replaceAll(" ", "_");
requestDate = requestDate.replaceAll(":", "");
将给您12122012\u 02023\u AM
然后requestDate=requestDate.toLowerCase()
将给12122012_020223_am如果您想要StringTokenise这样的东西,应该这样做
@Test
public void test() {
StringTokenizer stringTokenizer = new StringTokenizer("ab/c/d EF", "/");
StringBuilder b = new StringBuilder();
while (stringTokenizer.hasMoreTokens()) {
StringTokenizer stringTokenizer2 = new StringTokenizer(stringTokenizer.nextToken(), " ");
while (stringTokenizer2.hasMoreTokens()) {
b.append(stringTokenizer2.nextToken().toLowerCase());
b.append("_");
}
}
assertEquals("ab_c_d_ef_", b.toString());
}
其中一个StringTokenizer使用以下方法获取字符串和delimeter:
你的意思是:stringrequestdate=“12/12/2012 02:02:23 AM”
到12122012\u 02023\u AM
?使用SimpleDateFormat
而不是StringTokenizer
。你也可以将所有这些链接在一起:requestDate=requestDate.replaceAll(“/”,“).replaceAll(“,”).toLowerCase()。
Nice AM简单解决方案,但是你忘记了:
s。您可以将\u AM
替换为AM
,以将最后一个下划线移到末尾。谢谢我补充说,AM没有真正意义,我认为这是一个类型错误,但我们可以再次使用replace all替换该部分
Date date = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a").parse(requestDate);
String output = new SimpleDateFormat("MMddyyyy_hhmmssa_").format(date);
output = output.toLowerCase();