Advertisement
Guest User

Untitled

a guest
Mar 10th, 2010
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.71 KB | None | 0 0
  1. import java.util.regex.Pattern;
  2.  
  3. public class Main {
  4.  
  5.     public static void main(String[] args) throws Exception {
  6.         String s = "(Yeahhhh) I have finally made it to the (top)";
  7.  
  8.         {
  9.             long chars = 0;
  10.             Pattern p = Pattern.compile("[()]");
  11.  
  12.             // warmup
  13.             chars += lengthReplaceAll(s, p);
  14.            
  15.             long start = System.currentTimeMillis();
  16.             for (int i = 0; i < 10000000; i++) {
  17.                 chars += lengthReplaceAll(s, p);
  18.             }
  19.             System.out.println(System.currentTimeMillis() - start + "ms");
  20.             System.out.println(chars);
  21.         }
  22.  
  23.         {
  24.             long chars = 0;
  25.            
  26.             // warmup
  27.             chars += lengthCharAt(s);
  28.            
  29.             long start = System.currentTimeMillis();
  30.             for (int i = 0; i < 10000000; i++) {
  31.                 chars += lengthCharAt(s);
  32.             }
  33.             System.out.println(System.currentTimeMillis() - start + "ms");
  34.             System.out.println(chars);
  35.         }
  36.        
  37.         {
  38.             long chars = 0;
  39.            
  40.             // warmup
  41.             chars += lengthCharAt2(s);
  42.            
  43.             long start = System.currentTimeMillis();
  44.             for (int i = 0; i < 10000000; i++) {
  45.                 chars += lengthCharAt2(s);
  46.             }
  47.             System.out.println(System.currentTimeMillis() - start + "ms");
  48.             System.out.println(chars);
  49.         }
  50.     }
  51.  
  52.     private static int lengthReplaceAll(String s, Pattern p) {
  53.         return s.length() - p.matcher(s).replaceAll("").length();
  54.     }
  55.  
  56.     private static int lengthCharAt(String s) {
  57.         int c = 0;
  58.         int l = s.length();
  59.         for (int j = 0; j < l; j++) {
  60.             switch (s.charAt(j)) {
  61.             case '(':
  62.             case ')':
  63.                 c++;
  64.             }
  65.         }
  66.         return c;
  67.     }
  68.    
  69.     /**
  70.      * calling length() every time
  71.      */
  72.     private static int lengthCharAt2(String s) {
  73.         int c = 0;
  74.         for (int j = 0; j < s.length(); j++) {
  75.             switch (s.charAt(j)) {
  76.             case '(':
  77.             case ')':
  78.                 c++;
  79.             }
  80.         }
  81.         return c;
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement