21.英文輸入法單詞聯想功能問題


主管期望你來實現英文輸入法單詞聯想功能,需求如下
依據用戶輸入的單詞前綴,從已輸入的英文語句中聯想出用戶想輸入的單詞
按字典序輸出聯想到的單詞序列,如果聯想不到,請輸出用戶輸入的單詞前綴
注意:英文單詞聯想時區分大小寫,縮略形式如,"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());
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM