This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Mar 10th, 2010  |  syntax: Java  |  size: 1.71 KB  |  views: 157  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. }
clone this paste RAW Paste Data