/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.io.UnsupportedEncodingException;
/**
*@author rpax - http://stackoverflow.com/questions/22441079/is-it-correct-efficient-to-call-trim-after-a-byte-to-string-conversion
**/
class Test {
/**
*
* @param args
*/
public static void main
(String[] args
) { byte[] barray= new byte[9999999];
barray[0]=72;
barray[1]=101;
barray[2]=0;
barray[3]=108;
barray[4]=111;
barray[5]=33;
for (int k = 6; k < barray.length; k++) {
barray[k]=0;
}
try {
System.
out.
println(convertFromByteArray2
(barray
)); long tot_2=d-c;
System.
out.
println(convertFromByteArray
(barray
)); long tot_1=b-a;
System.
out.
println(tot_1
+" - "+tot_2
+" "+(tot_1
*1.0/tot_2
));
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return s.trim();
}
int i=barray.length-1;
while(barray[i--]==0 && i>=0);
return new String(barray,
0,i
+2,
"UTF-8"); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb247CgovKioKICpAYXV0aG9yIHJwYXggLSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzIyNDQxMDc5L2lzLWl0LWNvcnJlY3QtZWZmaWNpZW50LXRvLWNhbGwtdHJpbS1hZnRlci1hLWJ5dGUtdG8tc3RyaW5nLWNvbnZlcnNpb24KICoqLwpjbGFzcyBUZXN0IHsKCgkvKioKCSAqIAoJICogQHBhcmFtIGFyZ3MKCSAqLwoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCWJ5dGVbXSBiYXJyYXk9IG5ldyBieXRlWzk5OTk5OTldOwoJCWJhcnJheVswXT03MjsKCQliYXJyYXlbMV09MTAxOwoJCWJhcnJheVsyXT0wOwoJCWJhcnJheVszXT0xMDg7CgkJYmFycmF5WzRdPTExMTsKCQliYXJyYXlbNV09MzM7CgkJZm9yIChpbnQgayA9IDY7IGsgPCBiYXJyYXkubGVuZ3RoOyBrKyspIHsKCQkJYmFycmF5W2tdPTA7CgkJfQoJCXRyeSB7CgkJCWxvbmcgYz1TeXN0ZW0ubmFub1RpbWUoKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKGNvbnZlcnRGcm9tQnl0ZUFycmF5MihiYXJyYXkpKTsKCQkJbG9uZyBkPVN5c3RlbS5uYW5vVGltZSgpOwoJCQlsb25nIHRvdF8yPWQtYzsKCQkJbG9uZyBhPVN5c3RlbS5uYW5vVGltZSgpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oY29udmVydEZyb21CeXRlQXJyYXkoYmFycmF5KSk7CgkJCWxvbmcgYj1TeXN0ZW0ubmFub1RpbWUoKTsKCQkJbG9uZyB0b3RfMT1iLWE7CgkJCQoJCQlTeXN0ZW0ub3V0LnByaW50bG4odG90XzEgKyIgLSAiK3RvdF8yKyIgIisodG90XzEqMS4wL3RvdF8yKSk7CgkJCQoJCX0gY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkgewoJCQkvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrCgkJCWUucHJpbnRTdGFja1RyYWNlKCk7CgkJfQoJCQoJfQoJcHVibGljIHN0YXRpYyBTdHJpbmcgY29udmVydEZyb21CeXRlQXJyYXkoYnl0ZVtdIGEpIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uewoJICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhhLCJVVEYtOCIpOwoJICAgIHJldHVybiBzLnRyaW0oKTsKCX0KCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGNvbnZlcnRGcm9tQnl0ZUFycmF5MihieXRlW10gYmFycmF5KSB0aHJvd3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7CgkJaW50IGk9YmFycmF5Lmxlbmd0aC0xOwogICAgICAgIHdoaWxlKGJhcnJheVtpLS1dPT0wICYmIGk+PTApOwoJCXJldHVybiBuZXcgU3RyaW5nKGJhcnJheSwwLGkrMiwiVVRGLTgiKTsKCX0KCn0K