2013-11-09 2 views
0

Я хочу обратить слова текстового файла:Как отменить слова, а не символы с помощью Ruby?

Если мой вклад:

Hello World 

Мой вывод должен быть:

World Hello 

Я попытался это:

File.open('teste.txt').each_line do |line| 
    print line.reverse.gsub(/\n/,"") 
end 

, но я получил символы в обратном порядке.

+2

Габриэль, я хотел бы предложить небольшое предложение относительно формулировки вопросов. Иногда, как здесь, немного сложно быть точным, не вдаваясь в неудобную конструкцию предложения. В таких случаях изображение часто стоит 1K слов, например: «Я хочу перевернуть каждую строку текстового файла, чтобы« лиса прыгнула »становится« прыгающей лисицей ». –

ответ

8
"Hello World".split.reverse.join(" ") 
=> "World Hello" 

Он разбивает строку в массив с пробелами является разделителем по умолчанию. Затем он меняет массив и объединяет строки в массиве, используя пробел.

Ваше решение должно выглядеть следующим образом:

File.open("test.txt").each_line do |line| 
    puts line.split.reverse.join(" ") 
end 

puts добавляет разрыв строки после выхода, а print нет. Это необходимо, потому что split отбрасывает исходную строку в каждой строке, разделяя ее на массив слов.

+0

Большое вам спасибо :). Отличный ответ. –

+0

'File.open (" test.txt "). Each_line' должен выглядеть так:' File.foreach ("test.txt") ' –

2

Перерыв строки в слова и наоборот, что.

"Hello World".split.reverse.join(' ') # => "World Hello" 
0

Разделите строку на пространствах, переверните ее, затем соедините вместе.

Вы могли бы сделать метод, чтобы сделать это, как, например:

def reverse_words(string) 
     return string.split(" ").reverse.join(" ") 
end 

потом, вызовите этот метод с:

print reverse_words("Hello World") 

Или установите строку возвращаемого значения:

reversed_string = reverseWords("Hello World") 
+0

В Ruby мы используем snake_case для имен и переменных методов, а не для camelCase. 'reverseedString' и' reverseWords' должны быть 'reverseed_string' и' reverse_words' соответственно. –

+0

Верно, извините, я это знаю. Я занимаюсь программированием на Java. Я отредактирую это. – IHazABone

Смежные вопросы