2009-04-14 18 views
1

如果我想要在頁面上打印一些text,但只想在打印之前打印前100個單詞,請執行以下操作...最簡單的方法是什麼?總結文本

+1

我敢肯定,「食」是不是你想要的字。它確實意味着「晦澀」,但僅限於天文意義。 「你好像並不喜歡的」省略號「是三點名稱:」......「 – 2009-04-15 13:02:42

+0

省略號真*是*您正在尋找的字 – iandotkelly 2014-01-04 15:27:01

回答

5

這個怎麼樣的一個開始:

def first_words(s, n) 
    a = s.split(/\s/) # or /[ ]+/ to only split on spaces 
    a[0...n].join(' ') + (a.size > n ? '...' : '') 
end 

s = "The quick brown fox jumps over the lazy dog. " * 20 

puts "#{s.size}, #{s.split(/\s/).size}" 
#-> 900, 180 

puts first_words(s, 10) 
#-> The quick brown fox jumps over the lazy dog. The... 

puts first_words("a b c d", 10) 
#-> a b c d 
+0

這似乎是刪除了我的新行。我如何保留它們? – alamodey 2009-04-14 13:25:27

1

你有兩個選擇,一個辦法是,你可以說,一個詞是ñ字符,然後採取長度的字符串,追加ellipsis到最後並顯示它。或者你可以運行字符串並計算空格的數量,如果你假設每個單詞之間只有一個空格,那麼第100個空格將在第100個單詞之後,追加省略號並完成。

哪一個具有更好的性能可能取決於如何寫入函數,很可能子字符串操作將比計算空格更快。但是,性能差異可能可以忽略不計,因此除非您這麼做了很多,否則計算空間可能是最準確的方法。

另外,僅作爲參考,英語單詞的平均長度爲is 5.1 characters