Python Character Limiter - PullRequest
       7

Python Character Limiter

3 голосов
/ 06 августа 2011

Как я могу ограничить строку на основе количества символов и в то же время сохранить полные слова?

Я просто не хочу разрезать, но даже хочу сохранить полные слова.Пожалуйста, ведите меня ..

Редактировать

Пример

string = "stackoverflow rocks , I know it."

, поэтому мне нужна функция, например

limiter(string,5)

, который должен возвращать полное слово (stackoverflow в этом примере), даже если установленный мною предел равен 5. Таким образом, сохраняется значение слов ..

limiter(string,25)

требуемыйрезультат

stackoverflow rocks , I know

Спасибо!

Ответы [ 2 ]

5 голосов
/ 06 августа 2011

Будет ли это работать для вас?

#!/usr/bin/python

def limiter(x, limit):
    for i in range(len(x)):
        if i >= limit and x[i] == " ":
            break
    return x[:i]

def main():
    x = "stackoverflow rocks , I know it."
    print limiter(x, 5)
    print limiter(x, 25)

if __name__ == '__main__':
    main()
4 голосов
/ 06 августа 2011

Если то, что вы хотите сделать, это перенос слов в строку, то простой подход заключается в следующем:

  1. Начни смотреть на персонажа start + max_width
  2. Переходите назад на один символ за раз, пока не найдете слово, разбивающее символ
  3. Если вы нашли один, а затем разбили там, если вы вместо этого достигли start, то ничего не поделаешь и просто распечатайте всю строку
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...