删除字符串数组中的字母

时间:2018-06-21 10:22:40

标签: arrays ruby string

我有一个字符串数组

array = ["Hello", "This", "is", "Great"]

如何删除上述数组中特定字符串的特定字母?

即。可以说我想删除字符串“ is”中的字母s

我知道array [2] [1]用于选择字母“ s”;使用我认为.delete_at(2)(1)可以类似的方式使用,但不能。

我们将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以使用slice:

mystring = "bla"
mystring.slice!(1)

mystring现在将返回'ba'。在您的示例中使用它:

array[2].slice!(1)

数组现在返回

["Hello", "This", "i", "Great"]

答案 1 :(得分:1)

  

我知道array[2][1]用于选择字母"s"

确实,但是[2][1]两个不同的方法调用:array[2]调用Array#[],该方法返回给定索引处的元素:

array[2] #=> "is"
在该返回值上调用

[1],即"is"

array[2][1] #=> "s"
    "is"[1] #=> "s"

或使用临时变量进行说明:

string = array[2] #=> "is"
string[1]         #=> s

,由于返回值为字符串,因此[1]调用String#[]

  

我认为.delete_at(2)(1)可以类似的方式使用,但不能。

数组对数组元素一无所知。因此,您不能要求数组删除其中包含的字符串的一部分。您必须要求字符串这样做。

String#slice!可用于删除给定索引处的字符:

string = "is"

string           #=> "is"
string.slice!(1) #=> "s"
string           #=> "i"

应用于您的阵列:

array = ["Hello", "This", "is", "Great"]

array[2]           #=> "is"
array[2].slice!(1) #=> "s"
array[2]           #=> "i"

array #=> ["Hello", "This", "i", "Great"]

答案 2 :(得分:1)

您还可以使用String的delete!方法

对于您而言,当应用于数组时,它将返回:

array = ["Hello", "This", "is", "Great"]

array[2] #=> "is"

array[2].delete! "s" #=> "i"

array #=> ["Hello", "This", "i", "Great"]

请注意,delete!执行删除操作,如果未修改 str ,则返回 str nil 。< / p>