我有一个字符串数组
array = ["Hello", "This", "is", "Great"]
如何删除上述数组中特定字符串的特定字母?
即。可以说我想删除字符串“ is”中的字母s
我知道array [2] [1]用于选择字母“ s”;使用我认为.delete_at(2)(1)
可以类似的方式使用,但不能。
我们将不胜感激。
答案 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>