リストを返す: [「HelloMars」、「のHelloWorld」、「HelloWorldMars」、「秘宝」]リストを所与の機能を記述し、パターンマッチング要素をキャメルケース文字列の
テストケース:
- H - > [HelloMars、HelloWorldの、HelloWorldMars、秘宝]
- HW - > [HelloWorldの、HelloWorldMars]
- ホー - > []
- HeWorM - > [HelloWorldMars] ここ
は私が試してみたものです:
private static List<String> findMatchingCamel(String patter){
List<String> result=new ArrayList<String>();
List<String> myData=Arrays.asList("HelloMars","HelloWorld","HelloWorldMars","HiHo");
String[] upperCasePattern=splitBasedOnUpperCaseLetter(patter);
for(String str1:myData){
boolean found=true;
for(String s:upperCasePattern){
if(str1.indexOf(s)==-1)
{
found=false;
break;
}
}
if(found)
result.add(str1);
}
return result;
}
private static String[] splitBasedOnUpperCaseLetter(String str){
String[] result=str.split("(?=[A-Z])");
return result;
}
私の機能は、パターンは、それが秘宝を返しているホーあるときに例えば例に取り組んでいません。どうすればそれを改善できますか?バグを修正し、可能な限り最小限の時間で結果を返しますか?
は、正規表現を使って試してみて、あなたの入力文字列置くことを '置き換え*'(最初のものを除く)の各大文字の前に、文字列の末尾に...あなたの例では、。 – lmcarreiro