我有一个关于如何做一些涉及字符串和列表在java中的问题。我希望能够进入一个字符串说使用扫描仪类和程序必须在这三个的回报最短的字,例如检查一个字符串,如果它包含字母
“AAA”
。例如,有一个文本文件填充了数千个要与输入相关的单词,并且如果它有三个a,那么它就是一个候选人,但现在只有最短的才能返回那个单词。如果输入的字母是用文字填充的文本文件的所有单词,你究竟如何比较和查看?
我有一个关于如何做一些涉及字符串和列表在java中的问题。我希望能够进入一个字符串说使用扫描仪类和程序必须在这三个的回报最短的字,例如检查一个字符串,如果它包含字母
“AAA”
。例如,有一个文本文件填充了数千个要与输入相关的单词,并且如果它有三个a,那么它就是一个候选人,但现在只有最短的才能返回那个单词。如果输入的字母是用文字填充的文本文件的所有单词,你究竟如何比较和查看?
开始,采取了VIST到java.lang.String
JavaDocs
特别是,看看String#contains
。由于参数要求,我会原谅你错过了这个。
实施例:
String text = //...
if (text.contains("aaa")) {...}
尝试此,
while ((input = br.readLine()) != null)
{
if(input.contains(find)) // first find the the value contains in the whole line.
{
String[] splittedValues = input.split(" "); // if the line contains the given word split it all to extract the exact word.
for(String values : splittedValues)
{
if(values.contains(find))
{
System.out.println("all words : "+values);
}
}
}
}
的最简单的方法是使用String.contains()
和一个循环,检查长度:
String search = "aaa"; // read user input
String fileAsString; // read in file
String shortest = null;
for (String word : fileAsString.split("\\s*")) {
if (word.contains(search) && (shortest == null || word.length() < shortest.length())) {
shortest = word;
}
}
// shortest is either the target or null if no matches found.
感谢信息,但我唯一的问题是,我会写在主要方法或单独的方法包括找到最短的字符串返回。基本上,我必须遍历单词文件中的每个单词,并找到输入“aaa”或任何字母集合的最短字符串。 – user2045470
如果单独执行该操作,则必须存储所有不必要的单词。我想你可以先用字母序列来获得所有的单词,然后调用另一种方法来找到最短的单词。如果你这样做,我会使用Conparator对列表进行长度排序,然后获得第零个元素,如果列表 – Bohemian
感谢您的信息。我可以与此合作。我唯一的问题是,我会在主要方法中写入这个还是一个包含查找要返回的最短字符串的单独方法。基本上我必须遍历单词文件中的每个单词,并找到输入“aaa”或任何字母集合的最短字符串。 – user2045470
就我个人而言,我写了两种方法,一种最长,一种最短,但您需要根据您的整体需求自行做出决定,这只是我对可用信息的看法;) – MadProgrammer