【发布时间】:2013-10-05 00:07:13
【问题描述】:
我有以下形式的输入字符串数组 -
stringArray1 = {"Vidya", "Balan", "born", "1", "January","1978","is","an","Indian", "actress."}
stringArray2 = {"President", "Franklin", "D.", "Roosevelt","to","proclaim","December", "7,", "1941,","'a","date","which", "will","live", "in","infamy'"}
stringArray3 = {"The", "Academy", "operated", "until","it","was","destroyed", "by", "Lucius", "Cornelius","Sulla","in", "84", "BC"}
我希望能够将以下规则应用于这些字符串数组:
任何出现的日期都应转换为 yyyymmdd 格式的日期和 HH:mm:ss 格式的时间戳(yyyymmdd HH:mm:ss 的组合)。时区可以忽略。如果缺少任何字段,则应使用以下默认值: • 年份应设置为 1900。 • 月份应该是一月 • 日期应为第一天 • 小时、分钟或秒应为 00。
因此上述字符串的输出必须是:
stringOutput1 = { "Vidya", "Balan", "born","19780101","is","an", "Indian","actress." }
stringOutput2 = { "President", "Franklin", "D.","Roosevelt","to","proclaim", "19411207,", "'a","date","which", "will", "live", "in", "infamy'"}
stringOutput3 = { "The", "Academy", "operated","until", "it", "was", "destroyed", "by","Lucius","Cornelius", "Sulla", "in","-00840101"}
我尝试为此使用 SimpleDateFormatter,但我认为 SimpleDateFormatter 在没有特定格式的情况下没有这样的功能,而且我实际上对如何找到一个纯 Java 的解决方案来解决这个问题一无所知,请有人帮帮我。时间也是如此,也就是说,如果我有一个由日期和时间组合组成的通用字符串,我该如何转换这些字符串。
【问题讨论】:
-
你有什么规则来确定什么是约会?
-
另外,看起来您将多个数组元素组合成一个字符串之一。具体来说,“1”、“一月”、“1978”变成了“19780101”。这使事情变得非常复杂,特别是因为如果不进行更深入的分析,您将无法知道第一个“1”是否实际上是一个日期(这又会使事情变得更加困难。
-
是的,这正是问题所在,我该如何弄清楚,可悲的是,它实际上是项目中的要求:(
-
这更像是一个算法设计问题而不是编程问题。
-
我不知道是否有某种算法可以做到这一点,这是一个非常奇怪的要求,我想它需要更多的语言分析和机器学习,不是吗?
标签: java json string date datetime