자리 표시 자 NOUN
, VERB
, ADJ
및 ADV
을 파일에 사용자 입력이 필요합니다.파일을 문자열로 변환하고 문자열 텍스트를 사용자 입력으로 바꾸기
마들 리브의 solution09.txt : 내 아들 [ADV] 그의 [명사] 함께 플레이를보고 있었다
어느 날. 그는 [NOUN]이 [ADJ] 인 척했다. 몇 분 후에 그는 [NOUN] 중 하나가 몰 았기 때문에 [VERB]를 가장하고있었습니다. 내가 그것에 대해 물었을 때 [ADV]는 [NOUN] [VERB]이 [NOER]가 실제로 [VERB] 할 수 없기 때문에 재미 있었다고 말했다.
파일에 문자열을 넣었지만 문자열을 읽고 사용자 입력으로 자리 표시자를 바꿔야한다고 생각합니다. 교체가 끝나면 새로운 madlib을 출력해야합니다. 변수에 사용자 입력을 가져 오는 중이지만 자리 표시자를 사용자 입력으로 올바르게 바꾸는 방법을 모르겠습니다.
현재 코드 :
file = File.open("solution09.txt", "r")
contents = file.read
puts "Enter a noun: "
noun = gets.chomp
puts "Enter a verb: "
verb = gets.chomp
puts "Enter an adjective: "
adj = gets.chomp
puts "Enter an adverb: "
adv = gets.chomp
if file.include?('NOUN')
file1= file.gsub("[NOUN]", noun, "[VERB]", verb, "ADJ", adj, "ADV", adv)
end
첫 번째 문제는 gsub이 그렇게 작동하지 않는다는 것입니다. 여러 개의 치환을 원한다면'new_string = old_string.gsub ([NOUN] ', 명사) .gsub ('[VERB] ', 동사)와 같이 gsub를 여러 번 호출해야합니다' 당신이 원하는대로 많은 덩어리. 두 번째 문제는 품사를 둘러싼 []와 모순된다는 것입니다. 명사와 동사는 ADJ와 ADV가 가지고 있지 않습니다. 세 번째 문제는 파일을 가리키는 문자열 인'contents'보다는 파일 객체 인'file'에서 gsub를 호출한다는 것입니다. 그것은 시작하기에 충분해야합니다. –
정확히 출력하기 위해 필요한 것입니다. 고맙습니다! – Natela