2017-11-20 1 views
2

Ruby에서 문자열의 문자 범위를 바꾸려면 어떻게해야합니까? 예를 들어, TEH 문자열 Ruby에서 다양한 문자를 대체하려면 어떻게합니까?

hellothere 

내가 문자열 내가 이런 짓을 했을까 방법

he####here 

발생하는 두 개의 "#"를 포함하는 다섯을 통해 인덱스 위치에있는 문자를 바꾸려면

주어진?

+0

항상 동일한 문자로 바꿔야합니까? –

답변

2

당신은 문자열의 범위를 얻고 새로운 캐릭터가 마지막 인덱스에 1을 더한 적은 최초의 인덱스에 대한 곱 설정하여 대체 할 수 :

def replace_in_string(str, replace, start, finish) 
    str[start..finish] = replace * (finish + 1 - start) 
    str 
end 

p replace_in_string 'hellothere', '#', 2, 5 
# "he####here" 

문자열에 방법을 추가 클래스는 적은 당신에게 하나 개의 인수를 줄 것이다 :

class String 
    def replace_in_string(replace, start, finish) 
    self[start..finish] = replace * (finish + 1 - start) 
    self 
    end 
end 

p 'hellothere'.replace_in_string '#', 2, 5 
# "he####here" 
+0

String 클래스에 메서드를 추가하면 하나의 인수를 줄일 수 있습니다. –

+0

Soudns는 좋은 생각입니다 ... 정확히 어떻게 String 클래스에 추가하겠습니까? –

+0

거의 같은 방법으로, self에 대한 str 인수를 바꿉니다. 나는 갱신했다. –

관련 문제