如何将句子分成单词,然后将其分成两组Java?

时间:2016-01-17 05:18:48

标签: java arrays arraylist split hashmap

我需要将句子分成单词然后分成两组。一组只应包含句子中的最后一个单词,其他单词属于第二组作为句子的修饰语 例如: 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);
    ...................................
    ...................................
    }
}

5 个答案:

答案 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);
    }
}