Java 爪哇木瓦对
我在用一个程序从文本文件中的每个句子创建木瓦对时遇到了问题。现在,我的代码读取Java中的.txt文件,并按顺序输出每个句子。我想分别存储每个句子,然后获取每个句子并创建它们的2个字符的木瓦,这些木瓦将存储在一个数组中。这方面的一个例子是,把句子“敏捷的棕色狐狸”变成{th,he,e,q,qu,ui,ic,ck,k,b,br,ro,ow,wn,n,f,fo,ox},这样就可以解释单词之间的所有空格。我的目标是简单地获取每个句子,并为每个句子创建一个数组,以容纳上面示例中的木瓦对。我的问题是我不知道该怎么做。我似乎不知道如何把句子分开储存,我也不知道如何创建木瓦对。我对Java还是个新手,非常感谢您的帮助。以下是我目前的代码:Java 爪哇木瓦对,java,arrays,arraylist,Java,Arrays,Arraylist,我在用一个程序从文本文件中的每个句子创建木瓦对时遇到了问题。现在,我的代码读取Java中的.txt文件,并按顺序输出每个句子。我想分别存储每个句子,然后获取每个句子并创建它们的2个字符的木瓦,这些木瓦将存储在一个数组中。这方面的一个例子是,把句子“敏捷的棕色狐狸”变成{th,he,e,q,qu,ui,ic,ck,k,b,br,ro,ow,wn,n,f,fo,ox},这样就可以解释单词之间的所有空格。我的目标是简单地获取每个句子,并为每个句子创建一个数组,以容纳上面示例中的木瓦对。我的问题是我不知
//Takes .txt file as command-line input parameter
File file = new File(args[0]);
Scanner scanner = new Scanner(new FileInputStream(file));
int i=0;
//Reads in and outputs each line from the file
while (scanner.hasNextLine()) {
System.out.print(++i + " : " + scanner.nextLine() + "\n");
}
只需选取从[0,1]到[last-1,last]的字符对
String[] result = new String[sentence.length() - 1];
for (int i = 0; i < sentence.length() - 2; i++)
{
result[i] = sentence.substring(i, i + 2);
}
String[]result=新字符串[句子.length()-1];
for(int i=0;i<句子长度()-2;i++)
{
结果[i]=句子子串(i,i+2);
}
如果您需要,您可以在本周期结束后使用
trim()
删除空格。要拆分成句子,可以使用模式匹配。只需定义任务的有效sentene即可。这里我假设一个句子总是以点、问号或感叹号结尾;下一个句子在一个或多个空格后开始
final Pattern sentencePattern = Pattern.compile("[\\.\\?!]+\\s+");
sentencePattern.splitAsStream(text).forEach(
System.out::println //your code here
);
非常感谢,这正是我需要的。