fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.regex.*;
  7. import java.net.*;
  8. /* Name of the class has to be "Main" only if the class is public. */
  9. class Ideone
  10. {
  11. public static List<String> values = Arrays.asList("test","detest","test0/1/1");
  12.  
  13. public static Collection<String> query(String queryStr,List<String> values) {
  14. String orgQueryStr = queryStr;
  15. //queryStr= queryStr.replaceAll("\\*", "\\\\S*");
  16. //queryStr = "\\S*" + queryStr + "\\S*";
  17. queryStr= queryStr.replaceAll("\\*+", ".*");
  18. queryStr = ".*" + queryStr + (queryStr.endsWith(".*") ? "" : ".*");
  19. System.out.println(queryStr);
  20. List<String> list = new ArrayList<String>();
  21. for (int i=0;i<values.size();i++) {
  22. String str = values.get(i);
  23. String str1 = str.toLowerCase();
  24. //System.out.println("Search string : " + str1 + " QueryString : " + queryStr + " Original : " + orgQueryStr);
  25. if (str1.matches(queryStr) || str1.contains(orgQueryStr)){
  26. //System.out.println("Matched !!");
  27. list.add(str);
  28. }
  29. else{
  30. //System.out.println("Did not match " + str1);
  31. }
  32. }
  33. if (list.isEmpty())
  34. return null;
  35. else
  36. return list;
  37. }
  38.  
  39. public static void main (String[] args) throws java.lang.Exception
  40. {
  41. String queryStr="te*";
  42. System.out.println(URLDecoder.decode(queryStr));
  43. queryStr= URLDecoder.decode(queryStr);
  44. System.out.println(query(queryStr.toLowerCase(),values));
  45. }
  46. }
Success #stdin #stdout 0.1s 320576KB
stdin
Standard input is empty
stdout
te*
.*te.*
[test, detest, test0/1/1]