主管期望你來實現英文輸入法單詞聯想功能,需求如下
依據用戶輸入的單詞前綴,從已輸入的英文語句中聯想出用戶想輸入的單詞
按字典序輸出聯想到的單詞序列,如果聯想不到,請輸出用戶輸入的單詞前綴
注意:英文單詞聯想時區分大小寫,縮略形式如,"don't" 判定為兩個單詞 "don"和 "t"
輸出的單詞序列不能有重復單詞,且只能是英文單詞,不能有標點符號。
輸入描述
輸入兩行
首行輸入一段由英文單詞word和標點構成的語句str
接下來一行為一個英文單詞前綴pre
0 < word.length() <= 20
0 < str.length <= 10000
0 < pre <=20
輸出描述
輸出符合要求的單詞序列或單詞前綴
存在多個時,單詞之間以單個空格分割
示例一
輸入
I love you
He
輸出
He
說明
用戶已輸入單詞語句"I love you", 中提煉出"I","love","you"三個單詞
接下來用戶輸入"He" ,從已經輸入信息中無法聯想到符合要求的單詞,所以輸出用戶輸入的單詞前綴
示例二
輸入
The furthest distance in the world,Is not between life and death,But when I stand in front or you,Yet you don't know that I love you.
f
輸出
front furthest
查看代碼
import java.util.*;
public class Demo21 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[] split = sc.nextLine().split("\\W+");
String pre = sc.nextLine();
TreeSet<String> set = new TreeSet<>();
for(String s : split){
if(s.startsWith(pre))
set.add(s);
}
if(set.size() == 0){
System.out.println(pre);
return ;
}
StringBuilder sb = new StringBuilder();
for(String s : set){
sb.append(s).append(" ");
}
System.out.println(sb.toString().trim());
}
}