我需要從文件中讀取內容並找到可以從文件中存在的其他單詞形成的最長單詞。文件中的單詞是空格分開的。例如:Java中的子串操作 - 查找由其他單詞構成的最長單詞
從文件輸入:
This is example an anexample Thisisanexample Thisistheexample
輸出:
Thisisanexample
注:形成的最長的單詞是Thisisanexample
和不Thisistheexample
因爲單詞the
不包含作爲單獨的單詞在文件中。
這是可能的通過使用簡單的數組?我也做了以下情況:
try{
File file = new File(args[0]); //command line argument for file path
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = null;
//array for each word
String[] words = new String[] {};
while ((line = br.readLine()) != null){
words = line.split("\\s+"); //splitting the string with spaces
}
// array to store length of each word
int[] wordLength = new int[words.length];
for(int i = 0; i < words.length; i++){
wordLength[i] = words[i].length();
}
int currLength = 0; //store length of current word
int maxLength = 0; //store length of max word
String maxWord = null;
//checking each word with others at O(n*n) complexity
for (int i = 0; i < words.length; i++){
currLength = 0;
for (int j = 0; j < words.length && j != i; j++){
if (words[i].contains(words[j])){
currLength += wordLength[j];
}
}
System.out.println(currLength);
if(currLength > maxLength){
maxLength = currLength;
maxWord = words[i];
}
}
System.out.println(maxWord);
}
但如果有一個子withing一個子這不起作用。它會給以下輸入輸出錯誤:
This is example an anexample Thisisanexample Thisisanexample2
輸出應該Thisisanexample
但它給Thisisanexample2
。
純粹的代碼寫入請求在堆棧溢出上偏離主題 - 我們期望 這裏的問題與*特定的*編程問題有關 - 但我們 將很高興地幫助您自己編寫它!告訴我們 [你試過的東西](http://whathaveyoutried.com),以及你卡在哪裏。 這也將幫助我們更好地回答你的問題。 –
重複? http://stackoverflow.com/questions/17387218/find-first-longest-word-in-a-string-excluding-symbols –
@ huanfeng,這與你所鏈接的不一樣。 – titan7585