Arrays 如何加上「-&引用;在红宝石的刺痛中

Arrays 如何加上「-&引用;在红宝石的刺痛中,arrays,ruby,string,Arrays,Ruby,String,Inputstr=“这是我的字符串。我们需要将此字符串截断为特定长度” Outputstr=“这是我们需要的字符串” 我尝试了这一点,但需要一点高效的代码: str.split(“”).map{| word | word+“-”}.join()我假设您的字符串将是正确的文本,但它可能有句号(.)、逗号(,)、问号(?)和扩展(!)。根据您提供的示例,您在其中输入了句号,我猜您正在删除这些特殊字符 因此,这里很少尝试达到您的场景 str = "This is my string. We need

Input
str=“这是我的字符串。我们需要将此字符串截断为特定长度”

Output
str=“这是我们需要的字符串”

我尝试了这一点,但需要一点高效的代码:
str.split(“”).map{| word | word+“-”}.join()

我假设您的字符串将是正确的文本,但它可能有句号(.)、逗号(,)、问号(?)和扩展(!)。根据您提供的示例,您在其中输入了句号,我猜您正在删除这些特殊字符

因此,这里很少尝试达到您的场景

str = "This is my string. We need to truncate this string to certain length"
str.downcase.gsub(/[^0-9A-Za-z\s]/, '').gsub(/\s+/, '-')
# => "this-is-my-string-we-need-to-truncate-this-string-to-certain-length"

这是香草ruby还是rails项目?我这样问是因为有一种
ActiveSupport
方法可能会有所帮助:
String#dasherize
@TomLord String#dasherize将完成这个dasherize('puni#puni')#=>“puni-puni”另外,你能澄清一下你想要实现的逻辑吗?在截断之前或之后,您希望如何计算字符数?(例如,
是否算作一个字符?)如果截短部分在一个单词中结束,应该如何处理?我正在尝试获得一个友好的id,即博客的url。删去单词soh。。对不起,我的意思是不要用dasherize。不过,您没有回答我的问题:这是rails项目还是香草ruby?