我需要将句子分成单词然后分成两组。一组只应包含句子中的最后一个单词,其他单词属于第二组作为句子的修饰语 例如: Max Price食物信息 {Max,Price,Food} {信息}
我这样做直到分裂。但是,这样的团体就是这样的。我怎么能这样做?
import java.util.*;
public class Groupword {
public static void main(String[] args) {
ArrayList<String> words = new ArrayList<String>();
HashMap<String, Integer> wordFreqMap = new HashMap<String, Integer>();
terms.add("Max Price Food Information");
for(int i=0; i < terms.size(); i++) {
tempTerm = terms.get(i);
String[] result = tempTerm.split(" ");
for (String s : result) {
System.out.println("word="+s);
...................................
...................................
}
}
答案 0 :(得分:2)
String lastWord = result[result.length - 1];
String[] modifiers = Arrays.copyOf(result, result.length - 1);
答案 1 :(得分:0)
使用Arrays.copyOfRange
:
terms.add("Max Price Food Information");
for (String s: terms) {
String[] arr = s.split(" ");
String[] arr1 = Arrays.copyOfRange(arr, 0, arr.length-1); // [Max, Price, Food]
String[] arr2 = Arrays.copyOfRange(arr, arr.length-1, arr.length); // [Information]
}
答案 2 :(得分:0)
我认为此解决方案可能有效,效率不高 如果您有模式: Max Price食物信息 你可以拥有两个数组:
String Data[][]=new String[3][terms.size];
String Information[] = new String[terms.size];
然后按以下方式阅读数据:
Scanner in = new Scanner(System.in);
for(int i=0; i < terms.size(); i++){
Data[0][i] = in.next();
Data[1][i] = in.next();
Data[2][i] = in.next();
Information[i] = in.next();
}
这种方式是没有拆分方法
答案 3 :(得分:0)
您可以简单地存储拆分字数组中的最后一个字,并通过将其复制到长度为1来截断该数组的最后一个元素。
这样的事情:
for(int i=0; i < terms.size(); i++) {
tempTerm = terms.get(i);
String[] result = tempTerm.split(" ");
for (String s : result) {
System.out.println("word="+s);
}
String lastWord = result[result.length-1];
result = Arrays.copyOf(result, result.length-1)
}
答案 4 :(得分:0)
List<String> firstWordsList = new ArrayList<>();
List<String> lastWordList = new ArrayList<>();
for(String tempTerm : terms) {
int lastSpaceIndex = tempTerm.lastIndexOf(" ");
if (lastSpaceIndex >= 0) {
String firstWords = tempTerm.substring(0, lastSpaceIndex);
String lastWord = tempTerm.substring(lastSpaceIndex+1);
firstWordsList.add(firstWords);
lastWordsList.add(lastWord);
}
else {
lastWordsList.add(tempTerm);
}
}