如何在不使用任何格式化程序和字符串方法的情况下将String转换为LocalDate格式

时间:2017-07-21 16:57:08

标签: string date string-formatting localdate

字符串值=" 2017/3/4&#34 ;; 我希望我的字符串值为LocalDate格式,如" 2017-03-04" 如何在不使用任何格式化程序和字符串方法(如split(),indexof())的情况下将此值转换为我的localdate。

1 个答案:

答案 0 :(得分:1)

简单方法:使用String.replace(char oldChar, char newChar)用连字符替换斜杠。请记住,replace不会改变您的字符串,而是返回包含更改的新字符串。然后使用LocalDate.parse(CharSequence text)将新字符串解析为LocalDateStringCharSequence,这样就行了。)

如果您不允许使用String.replace(),请使用String.toCharArray()转换为char[]。遍历此数组并用连字符替换每个斜杠。然后通过String(char[] value)构造函数构建一个新字符串。然后按上述步骤操作。或者,使用StringBuilder构造函数从原始字符串创建StringBuilder(CharSequence seq),迭代它并用连字符替换每个斜杠。然后,您只需将StringBuilder传递给LocalDate.parse(),因为这也是CharSequence。编辑:请注意,最后一种方法根本不直接使用任何 String方法,所以这可能是预期的(StringBuilder构造函数间接使用{{1} }和String.length())。

如果您不允许使用String.getChars(),因为它隐含使用LocalDate.parse(),那么您需要自己从字符串中提取日期,月份和年份。这有点复杂。如果这是必要的,你需要帮助,请告诉我们,我会解释。

正如@Hugo所说,如果你不允许直接或间接地使用任何 DateTimeFormatter方法或任何格式化程序,那么就没有办法了。

在任何情况下,请自己编写代码(我希望你一直这样写,但你的问题并不清楚)。 Stack Overflow不是代码编写服务,你从复制某人为你编写的代码中学到的东西(或很少)。