将包含多个单词的字符串转换为单词向量
Converting a string that contains multiple words to a vector of words
我有一个 InputStream 文件,我必须将该文件中的所有单词放入一个字符串向量中。
我尝试了多种方法将 InputStream 文件转换为我可以读取其中所有单词的位置,但无论如何我总是以包含所有单词的长字符串结束。
如何将文件中的所有单词分开,以便将它们放入字符串向量中?
这是我从 InputStream 文件到字符串的转换代码:
public static InputStream vocabDoc = Librarian.class.getClassLoader().getResourceAsStream("Vocabulary.txt");
String str = new Scanner(vocabDoc,"UTF-8").useDelimiter("\A").next();
System.out.println(str);
这是文件“vocabDoc”包含的内容(准确):
file
vocabulary
test
is
one
this
for
如果我尝试将其放入向量中,它总是返回为:
[file
vocabulary
test
is
one
this
for
]
如果我取出 "\n"
,它会变成:[filevocabularytestisonethisfor]
,我的目标是得到类似:[file, vocabulary, test, is, one, this, for]
的结果。
我不确定从这里到哪里去,非常感谢您的帮助。
对于预期的输出,无需使用任何显式定界符即可。使用 Scanner#hasNext
,您可以测试文件是否有更多的字数需要读取。
演示:
import java.io.InputStream;
import java.util.Scanner;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
InputStream vocabDoc = Main.class.getClassLoader().getResourceAsStream("Vocabulary.txt");
Scanner scanner = new Scanner(vocabDoc);
Vector<String> vector = new Vector<>();
while (scanner.hasNext()) {
vector.add(scanner.next());
}
scanner.close();
System.out.println(vector);
}
}
输出:
[file, vocabulary, test, is, one, this, for]
我有一个 InputStream 文件,我必须将该文件中的所有单词放入一个字符串向量中。 我尝试了多种方法将 InputStream 文件转换为我可以读取其中所有单词的位置,但无论如何我总是以包含所有单词的长字符串结束。 如何将文件中的所有单词分开,以便将它们放入字符串向量中? 这是我从 InputStream 文件到字符串的转换代码:
public static InputStream vocabDoc = Librarian.class.getClassLoader().getResourceAsStream("Vocabulary.txt");
String str = new Scanner(vocabDoc,"UTF-8").useDelimiter("\A").next();
System.out.println(str);
这是文件“vocabDoc”包含的内容(准确):
file
vocabulary
test
is
one
this
for
如果我尝试将其放入向量中,它总是返回为:
[file
vocabulary
test
is
one
this
for
]
如果我取出 "\n"
,它会变成:[filevocabularytestisonethisfor]
,我的目标是得到类似:[file, vocabulary, test, is, one, this, for]
的结果。
我不确定从这里到哪里去,非常感谢您的帮助。
对于预期的输出,无需使用任何显式定界符即可。使用 Scanner#hasNext
,您可以测试文件是否有更多的字数需要读取。
演示:
import java.io.InputStream;
import java.util.Scanner;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
InputStream vocabDoc = Main.class.getClassLoader().getResourceAsStream("Vocabulary.txt");
Scanner scanner = new Scanner(vocabDoc);
Vector<String> vector = new Vector<>();
while (scanner.hasNext()) {
vector.add(scanner.next());
}
scanner.close();
System.out.println(vector);
}
}
输出:
[file, vocabulary, test, is, one, this, for]