如何正确交换字符串中的某些字符

Dam*_*iev 2 ruby string

我有一个代表日期的字符串:

"12.27.1995"
Run Code Online (Sandbox Code Playgroud)

我需要交换月份和日期来获得:

"27.12.1995"
Run Code Online (Sandbox Code Playgroud)

我做了:

date = "12.27.1995"

month = date[0]+date[1]
day = date[3]+date[4]

date[0] = day[0]
date[1] = day[1]
date[3] = month[0]
date[4] = month[1]
Run Code Online (Sandbox Code Playgroud)

它运作良好,但对我来说看起来很糟糕.是否可以使用更少的代码使其更可靠?

Eri*_*nil 7

由于您的字符串表示日期,您可能希望使用一个Date对象strptime来解析原始字符串并strftime以所需格式输出:

require 'date'

date = Date.strptime("12.27.1995", "%m.%d.%Y")
puts date.strftime("%d.%m.%Y")
# 27.12.1995
Run Code Online (Sandbox Code Playgroud)


saw*_*awa 6

是.也许是这样的:

date = "12.27.1995"
m, d, y = date.split(".")
date = [d, m, y].join(".")
Run Code Online (Sandbox Code Playgroud)