Liste der Kamel Fall Strings: [ ‚HelloMars‘, ‚Hello World‘, ‚HelloWorldMars‘, ‚HiHo‘]Schreiben Sie eine Funktion, die eine Liste gegeben und ein Muster liefert die passenden Elemente
Testfälle:
- H -> [HelloMars, Hello World, HelloWorldMars, HiHo]
- HW -> [Hello World, HelloWorldMars]
- Ho -> []
- HeWorM -> [HelloWorldMars] 012.
hier ist, was ich ausprobiert:
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;
}
meiner Funktion funktioniert nicht auf Fälle beispielsweise auf, wenn das Muster ist Ho es HiHo zurückkehrt. Wie kann ich es verbessern? behebe den Fehler und gib auch das Ergebnis in der kürzest möglichen Zeit zurück?
versuchen regex und ersetzen Sie die Eingabezeichenfolge setzen '*' vor jedem Großbuchstaben (außer dem ersten), und am Ende des Strings ... In Ihrem Beispiel. "H. *", "* H. W. *", "Ho. *" und "He. * Wor. * M. *" – lmcarreiro