0
有一個文本文件,其中包含每個文字之間有1個空格的文字。還有一個命令行條目給出了想要的行(輸出)的長度。輸出將是適合該行長度的單詞(從命令行獲取)。使用紅寶石線格式化
此外,第一個單詞將位於該行的左側,最後一個單詞將位於該單詞的右側。每個單詞之間的空格將相同。
任何幫助將不勝感激謝謝你的回覆。
有一個文本文件,其中包含每個文字之間有1個空格的文字。還有一個命令行條目給出了想要的行(輸出)的長度。輸出將是適合該行長度的單詞(從命令行獲取)。使用紅寶石線格式化
此外,第一個單詞將位於該行的左側,最後一個單詞將位於該單詞的右側。每個單詞之間的空格將相同。
任何幫助將不勝感激謝謝你的回覆。
正則表達式的一個小民建聯會做雅:
s = "The quick brown fox jumps over the lazy dog"
def limit_length(s, limit)
s =~ /\A.{0,#{limit}}(?=\Z|)/ && $& || ''
end
p limit_length(s, 2) # => ""
p limit_length(s, 3) # => "The"
p limit_length(s, 42) # => "The quick brown fox jumps over the lazy"
p limit_length(s, 43) # => "The quick brown fox jumps over the lazy dog"
正則表達式,細分:
\A From the beginning of the string
.{0,#{limit}} Match up to *limit* characters
(?=\Z|) Followed by the end of the string or a blank
Perl的去年秋季的結尾處的位返回匹配字符串,或者如果不匹配,則爲空字符串。它分解如下:
&& If true (i.e., if match)
$& matched string
|| else
'' empty string
File.open('input.txt').each do |l|
length_so_far = 0
puts l.split(' ').select{|w| (length_so_far += w.length) < max_length}.join(' ')
end
這功課? – Anna 2010-05-20 14:48:09
類似的東西。 – dbtek 2010-05-21 10:53:12