我有一個關於如何做一些涉及字符串和列表在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