删除字符串末尾的短横线字符。

11 浏览
0 Comments

删除字符串末尾的短横线字符。

我在我的数据库中有一个表项。

我想要在Item.name中替换掉位于Item.name结尾的字符“-”。

所以我尝试这样做:

items = Item.all

items.each do |it|

it.name=it.name.gsub('/\-$/','')

it.save

end

但是它不起作用。我该怎么办?

更新:

我成功这样做:

i = Item.all

i.each do |it|

it.name=it.name.chomp('-')

it.save

end

但是我仍然不明白为什么第一个方法不起作用。

0
0 Comments

问题出现的原因:

在给定的代码中,通过使用gsub方法将字符串中的连字符(-)替换为空字符串,从而删除了字符串中的连字符。然而,这个替换操作并不仅仅限于字符串末尾的连字符,而是将字符串中任何位置的连字符都替换掉了。

解决方法:

要解决这个问题,需要修改代码,使其只删除字符串末尾的连字符。可以通过使用chomp方法来实现。chomp方法可以删除字符串末尾的指定字符。在这种情况下,我们可以将chomp方法用于连字符(-),以确保只删除字符串末尾的连字符。

修改后的代码如下所示:

items = Item.all
 items.each do |item|
 item.name = item.name.chomp('-')
 it.save
 end

这样修改后的代码将只删除字符串末尾的连字符,而保留字符串中其他位置的连字符不受影响。

0
0 Comments

问题的出现原因:

在给定的代码中,字符串的末尾可能会存在一个破折号字符(dash character),如果存在该字符,则需要将其删除。问题的出现原因可能是为了符合特定的格式要求或者字符串处理的需要。

解决方法:

可以使用Ruby语言中的sub!函数来解决这个问题。该函数的作用是替换字符串中的子字符串。通过将破折号字符传递给sub!函数的第一个参数,并将空字符串传递给第二个参数,即可删除字符串末尾的破折号字符。

具体代码如下:

it.name.sub!("-", "")

需要注意的是,代码中的感叹号(!)表示Bang方法,它可以直接修改字符串对象,而无需将其存储到新的item对象中。这样可以节省内存空间和代码行数。

0
0 Comments

问题原因:字符串末尾有一个破折号字符,需要将其删除。

解决方法:使用Ruby的chomp方法删除字符串末尾的破折号字符。

具体实现代码如下:

items = Item.all
items.each do |it|
  it.name = it.name.chomp
  it.save
end

参考链接:[Ruby, remove last N characters from a string?](https://stackoverflow.com/questions/4209384)

0