gpt4 book ai didi

Java String - 查看一个字符串是否只包含数字和字符而不包含单词?

转载 作者:搜寻专家 更新时间:2023-11-01 02:08:43 26 4
gpt4 key购买 nike

我在整个应用程序中加载了一个字符串数组,它包含不同的词。我有一个简单的 if 语句来查看它是否包含字母或数字但不包含单词。

我的意思是我只想要像 AB2CD5X 这样的词 .. 我想删除所有其他词像 Hello 3 , 3 word , any other 是英语单词的单词。是否可以只过滤字母数字词,除了那些包含真正语法词的词。

我知道如何检查字符串是否包含字母数字单词

Pattern p = Pattern.compile("[\\p{Alnum},.']*");

也知道

 if(string.contains("[a-zA-Z]+") || string.contains([0-9]+])

最佳答案

您需要的是一本英语单词词典。然后你基本上扫描你的输入并检查每个标记是否存在于你的字典中。您可以在线找到字典条目的文本文件,例如在 Jazzy spellchecker 中。您也可以检查 Dictionary text file

这是一个示例代码,假设您的词典是一个 UTF-8 编码的简单文本文件,每行只有一个(小写)单词:

public static void main(String[] args) throws IOException {
final Set<String> dictionary = loadDictionary();
final String text = loadInput();
final List<String> output = new ArrayList<>();
// by default splits on whitespace
final Scanner scanner = new Scanner(text);
while(scanner.hasNext()) {
final String token = scanner.next().toLowerCase();
if (!dictionary.contains(token)) output.add(token);
}
System.out.println(output);

}

private static String loadInput() {
return "This is a 5gse5qs sample f5qzd fbswx test";
}

private static Set<String> loadDictionary() throws IOException {
final File dicFile = new File("path_to_your_flat_dic_file");
final Set<String> dictionaryWords = new HashSet<>();
String line;
final LineNumberReader reader = new LineNumberReader(new BufferedReader(new InputStreamReader(new FileInputStream(dicFile), "UTF-8")));
try {
while ((line = reader.readLine()) != null) dictionaryWords.add(line);
return dictionaryWords;
}
finally {
reader.close();
}
}

如果您需要更准确的结果,您需要提取 stems of your words 。参见 Apache's LuceneEnglishStemmer

关于Java String - 查看一个字符串是否只包含数字和字符而不包含单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23910989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com