package test.testAi;
import java.util.ArrayList;
import java.util.List;
public class Test01 {
public static void main(String[] args) {
String[] words = new String[]{"我们","明天","去","郊游","打篮球","喝","风华正茂","书生意气"};
String message = "你好,明天天气怎样?适合打篮球吗?";
System.out.println(cut(message,words));
}
public static List<String > cut(String message,String[] words) {
int maxWordLength = getMaxWordLength(words);
List<String > cutResult = new ArrayList<String>();
while (message.length() > 0) {
String matchMessage = message.substring(0, maxWordLength>message.length()?message.length():maxWordLength);
while (!strsContain(words,matchMessage)) {
if (matchMessage.length() > 1) {
matchMessage = matchMessage.substring(0, matchMessage.length() - 1);
} else{
break;
}
}
cutResult.add(matchMessage);
message = message.substring(matchMessage.length());
}
return cutResult;
}
public static boolean strsContain(String[] strs,String str){
for(String st:strs){
if(st.equals(str)){
return true;
}
}
return false;
}
public static int getMaxWordLength(String[] strs){
int maxWordLength = strs[0].length();
for (int i = 0; i <strs.length ; i++) {
if(maxWordLength<strs[i].length()){
maxWordLength = strs[i].length();
}
}
return maxWordLength;
}
}
