java - 将包含多个单词的字符串转换为单词向量
问题描述
我有一个 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]
推荐阅读
- react-native - React Native 中未生成短动态链接
- terraform - 子模块不继承提供者
- sabre - 讨价还价者 Max
- c# - 如何在 Blazor 中创建 div 元素
- mysql - 在 1 个查询中组合 2 个逻辑 SQL 语句
- python - Python温度转换器输出为无
- ios - Branch.io 延迟的深层链接在服务器上存储多长时间?
- react-native - React Native Modal Date Picker - 为什么我得到一个额外的窗口?
- javascript - Vue.js。子组件中的变异道具不会触发警告。想知道为什么
- laravel - 如何通过 user_id 使用 Laravel 导入 excel?