Как вернуть все слова в предложении [duplicate]

Обратите внимание, что каждый из примеров кода ниже может выдать IOException. Блоки try / catch / finally для краткости опущены.

Создание текстового файла (обратите внимание, что это будет перезаписывать файл, если он уже существует):

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();

Создание двоичного файла (это также перезапишет файл):

byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();

Пользователи Java 7+ могут использовать класс Files для записи в файлы :

Создание текстового файла:

List lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, Charset.forName("UTF-8"));
//Files.write(file, lines, Charset.forName("UTF-8"), StandardOpenOption.APPEND);

Создание двоичного файла:

byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);

4
задан Bill the Lizard 18 July 2012 в 02:18
поделиться

5 ответов

Вам нужно str.split() разбить каждую строку на слова:

word_list = [word for line in sentence for word in line.split()]
11
ответ дан Andrew Clark 21 August 2018 в 22:32
поделиться
  • 1
    Еще раз спасибо, я знал, что мне не хватает чего-то такого, очень ценного! – George Burrows 12 December 2011 в 19:56
  • 2
    Это должно быть [word for line in sentence for word in line.split()]. – Andrew Clark 12 December 2011 в 20:18
  • 3
    Приобретенный, хотя держать в моих более чем 2 статьях итерации, как правило, неодобрительно понимается в списках. – Daniel DeSousa 12 December 2011 в 20:21
  • 4
    Я знаю, что это было когда-то, но могу ли я получить объяснение по коду? Я понимаю [line for line in sentence], но я не понимаю вторую половину for word in line.split(). Чем он отличается от [line.split() for line in sentence]? – addicted 22 February 2018 в 12:27

Просто .split и .join:

word_list = ' '.join(sentence).split(' ')
8
ответ дан Blender 21 August 2018 в 22:32
поделиться

Вы не сказали, как отличить слово. По умолчанию, итерация через строку просто итерации через символы.

Вы можете использовать .split(' ') для разделения строки пробелами. Таким образом, это будет работать:

for item in sentence:
    for word in item.split(' '):
        word_list.append(word)
2
ответ дан Daniel Roseman 21 August 2018 в 22:32
поделиться
for item in sentence:
    for word in item.split():
        word_list.append(word)
1
ответ дан Emil Vikström 21 August 2018 в 22:32
поделиться

Разделить предложение на слова:

print(sentence.rsplit())
-1
ответ дан Isma 21 August 2018 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: