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();