2017-07-27 71 views
-1

我需要一種方法,它返回要顯示在顯示屏上的字符串列表。分割字符串,同時保留整個單詞

例如input = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec aliquet lorem ac eros lobortis laoreet."

然後,它開出字符串,並將它分爲與各16個字符的字符串列表。但是,這些字符串必須是完整的單詞,以便它不會將單詞分成兩部分。

因此,預期的輸出將是["Lorem ipsum", "dolor sit amet,", "consectetur", "adipiscing elit.", "Donec aliquet", "lorem ac eros", "lobortis", "laoreet."]其中每個字符串不會分割單詞和字符串不超過16個字符長。

我可以在液晶顯示器上顯示,我只需要一個方法,可以返回符合上述條件的字符串列表。

+1

那麼每個字符串都必須分成一個字符串列表?如果每個wrd超過16個字符會發生什麼? –

+1

你已經寫了什麼代碼?請編輯它到問題中。您的lorem ipsum示例的預期輸出是多少? – barny

+2

因此,您的示例的預期輸出將是「[Lorem ipsum」,「dolor sit amet」,「consectetur」,「adipiscing elit」,「Donec aliquet」,「lorem ac eros」,「lobortis」,「laoreet 。「]'? –

回答

3

我相信,這將做到這一點:

def split16(str_in): 
    words = str_in.split() 
    y = [words[0] + ' '] 
    index = 0 
    for word in words[1:]: 
     if len(word) + len(y[index]) < 16: 
      y[index] += word + ' ' 
     else: 
      index += 1 
      y.append(word + ' ') 
    return y 

警告這是假設無話則超過16個字符,這是安全的,因爲你說你不想要的話就不僅僅更承擔一條線。

相關問題