2017-08-16 105 views
-1

這裏是菜鳥程序員。如何檢查字符串是否爲單詞?

By word我的意思是像「蘋果」是一個字,但「opple」不是。

所以我想做一個非常簡單的應用程序,檢查用戶輸入的是一個字還是不是。

是否有一個小部件或我可以導入來做到這一點?

我還沒有看到這方面的任何文檔,但我知道拼寫檢查內置於手機中,所以我可以使用一些幫助。

+5

定義「單詞」。恰恰。一旦你有了定義,你幾乎可以實現。 –

+3

[Android API](https://developer.android.com/guide/topics/text/spell-checker-framework.html)我對API不是很熟悉,所以我不能寫每個答案的答案,但這應該是你想要的。 – drelliot

回答

0

可能有很多的方式來做到這一點,但一個方法是,你基本上需要有一個列表詞在您的項目的根目錄中。之後,您使用您的代碼來檢查String是否是您的根目錄中的單詞列表的一部分。

如果您使用的是Java,你可以這樣做如下`

import java.io.IOException; 
 
import java.nio.file.Files; 
 
import java.nio.file.Path; 
 
import java.nio.file.Paths; 
 
import java.util.Collections; 
 
import java.util.HashSet; 
 
import java.util.Set; 
 

 
public class Dictionary 
 
{ 
 
    private Set<String> wordsSet; 
 

 
    public Dictionary() throws IOException 
 
    { 
 
     Path path = Paths.get("words.txt"); 
 
     byte[] readBytes = Files.readAllBytes(path); 
 
     String wordListContents = new String(readBytes, "UTF-8"); 
 
     String[] words = wordListContents.split("\n"); 
 
     wordsSet = new HashSet<>(); 
 
     Collections.addAll(wordsSet, words); 
 
    } 
 

 
    public boolean contains(String word) 
 
    { 
 
     return wordsSet.contains(word); 
 
    } 
 
}

`

+0

Android有一個拼寫檢查服務,您可以利用,所以一個單詞列表是矯枉過正。 – jdv

0

爲了檢查,如果有一個字在一個字符串,我會尋找空間:

if (str != null && !str.trim().isEmpty() && str.trim().indexOf(' ') == -1) { 
    // it's a single word 
} 
+1

這不回答這個問題。它僅僅測試一個字符串是否爲非空並且不包含空格字符。 – jdv

+1

此問題以前不清楚 - 編輯OP以澄清他詢問拼寫檢查 – drelliot

+0

應該等待澄清,因爲原始Q中沒有任何內容提示「檢測到字符串是否是沒有空格的單個字符串」 。 – jdv

0

我想你指的是英語在這裏,有多個可用的庫如果你想創建一個像jaazy這樣的字典結構,或者google拼寫檢查API。

但如果你不希望將所有組的一些語言的單詞,並有一小部分的話你own..then

//使用一個HashSet保持靜態和加載所有詞語的HashSet的 //然後,如果輸入一個單詞,只需使用hashSet.contains()函數來獲取該元素是否存在於hashSet中[o(1)operation]。 //你的方法可以返回任何包含方法返回的內容。

讓我知道你是否需要任何更多細節。

-Sami

相關問題