我想知道如何計算特定字符串的出現在字符串中不使用任何內置的JAVA字符串函數的。例如:紀錄在一個字符串的子串,而無需使用字符串函數
InputString = "knowbutuknow"
subString = "know"
程序應返回的結果爲2
編輯:重新表述我的問題。這是我遇到的那些面試問題之一。
編輯:基本一樣的charAt和長度字符串函數都可以在這裏使用。
我想知道如何計算特定字符串的出現在字符串中不使用任何內置的JAVA字符串函數的。例如:紀錄在一個字符串的子串,而無需使用字符串函數
InputString = "knowbutuknow"
subString = "know"
程序應返回的結果爲2
編輯:重新表述我的問題。這是我遇到的那些面試問題之一。
編輯:基本一樣的charAt和長度字符串函數都可以在這裏使用。
假設,你已經知道你要搜索的關鍵字:在輸入字符串的字符「0」
這樣的事情。我假設String.length
被允許。其他,你需要創建自己的strlen函數。 (這可以通過使用forach
環路和簡單的計數「up」來實現)
這是未經測試的,可能無法正常工作,但應該給出一個簡要的想法。
String inputString = "knowbutuknow";
String subString = "know";
int matches = 0;
for (int outer = 0; outer <= inputString.length() - subString.length(); outer++){
for (int inner = 0; inner < subString.length(); inner++){
if (inputString.charAt(outer + inner) == subString.charAt(inner)){
// letter matched, proceed.
if (inner == subString.length()-1){
//last letter matched, so a word match at position "outer"
matches++;
//proceed with outer. Room for improvement: Skip next n chars beeing
// part of the match already.
break;
}
}else{
//no match for "outer" position, proceed to next char.
break;
}
}
}
編輯:對不起,在一些PHP :)混合修復它。
當然這是可能的。您如何看待內置方法的實施? :) –
雅......我應該重新解釋我的問題......這可能是什麼邏輯?任何指針? – RTG87
問題是:爲什麼你想避免字符串函數?如果你告訴我們你想達到的目標,我們可以幫助你更好。 – user1567896