public class Main
{
public static void main
(String[] args
) { int cnt = 111111111;
long start
= System.
currentTimeMillis(); for(long i = 1; i < cnt; i++) {
int[] res = digitizeStr(i);
}
long finish
= System.
currentTimeMillis(); long timeElapsed = finish - start;
System.
out.
println("digitizeStr: " + timeElapsed
);
start
= System.
currentTimeMillis(); for(long i = 1; i < cnt; i++) {
int[] res = digitizeStr2(i);
}
finish
= System.
currentTimeMillis(); timeElapsed = finish - start;
System.
out.
println("digitizeStr2 (no StringBuilder): " + timeElapsed
);
start
= System.
currentTimeMillis(); for(long i = 1; i < cnt; i++) {
int[] res = digitize(i);
}
finish
= System.
currentTimeMillis(); timeElapsed = finish - start;
System.
out.
println("Division by 10: " + timeElapsed
); }
private static int[] digitizeStr(long n) {
StringBuilder builder = new StringBuilder(s).reverse();
int[] array = new int[result.length()];
for(int i = 0; i < result.length(); i++) {
array[i] = result.charAt(i) - '0';
}
return array;
}
private static int[] digitize(long number) {
int length
= (int)Math.
log10(number
) + 1; int[] digits = new int[length];
for(int i = 0; i < length; i++) {
long m = number % 10;
number = (number - m) / 10;
digits[i] = (int)m;
}
return digits;
}
static int[] digitizeStr2(long l) {
int[] array = new int[value.length()];
for (int i = value.length() - 1, j = 0; i >= 0; i--, j++) {
array
[j
] = Integer.
parseInt(value.
substring(i, i
+ 1)); }
return array;
}
}
cHVibGljIGNsYXNzIE1haW4KewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJICAgIGludCBjbnQgPSAxMTExMTExMTE7CgkgICAgCgkgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoJCWZvcihsb25nIGkgPSAxOyBpIDwgY250OyBpKyspIHsKCQkgICAgaW50W10gcmVzID0gZGlnaXRpemVTdHIoaSk7CgkJfQoJCWxvbmcgZmluaXNoID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CiAgICAgICAgbG9uZyB0aW1lRWxhcHNlZCA9IGZpbmlzaCAtIHN0YXJ0OwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlnaXRpemVTdHI6ICIgKyB0aW1lRWxhcHNlZCk7CgoJICAgIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgkJZm9yKGxvbmcgaSA9IDE7IGkgPCBjbnQ7IGkrKykgewoJCSAgICBpbnRbXSByZXMgPSBkaWdpdGl6ZVN0cjIoaSk7CgkJfQoJCWZpbmlzaCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwogICAgICAgIHRpbWVFbGFwc2VkID0gZmluaXNoIC0gc3RhcnQ7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkaWdpdGl6ZVN0cjIgKG5vIFN0cmluZ0J1aWxkZXIpOiAiICsgdGltZUVsYXBzZWQpOwoKCSAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoJCWZvcihsb25nIGkgPSAxOyBpIDwgY250OyBpKyspIHsKCQkgICAgaW50W10gcmVzID0gZGlnaXRpemUoaSk7CgkJfQoJCWZpbmlzaCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwogICAgICAgIHRpbWVFbGFwc2VkID0gZmluaXNoIC0gc3RhcnQ7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEaXZpc2lvbiBieSAxMDogIiArIHRpbWVFbGFwc2VkKTsKICAgIH0KCQoJcHJpdmF0ZSBzdGF0aWMgaW50W10gZGlnaXRpemVTdHIobG9uZyBuKSB7CgkgICAgU3RyaW5nIHMgPSBTdHJpbmcudmFsdWVPZihuKTsKCSAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcihzKS5yZXZlcnNlKCk7CgkgICAgU3RyaW5nIHJlc3VsdCA9IFN0cmluZy52YWx1ZU9mKGJ1aWxkZXIpOwoJICAgIGludFtdIGFycmF5ID0gbmV3IGludFtyZXN1bHQubGVuZ3RoKCldOwoJICAgIGZvcihpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoKCk7IGkrKykgewoJICAgICAgICBhcnJheVtpXSA9IHJlc3VsdC5jaGFyQXQoaSkgLSAnMCc7CgkgICAgfQoJICAgIHJldHVybiBhcnJheTsKCX0KCQoJcHJpdmF0ZSBzdGF0aWMgaW50W10gZGlnaXRpemUobG9uZyBudW1iZXIpIHsKCSAgICBpbnQgbGVuZ3RoID0gKGludClNYXRoLmxvZzEwKG51bWJlcikgKyAxOwoJICAgIGludFtdIGRpZ2l0cyA9IG5ldyBpbnRbbGVuZ3RoXTsKCSAgICBmb3IoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKCSAgICAgICAgbG9uZyBtID0gbnVtYmVyICUgMTA7CgkgICAgICAgIG51bWJlciA9IChudW1iZXIgLSBtKSAvIDEwOwoJICAgICAgICBkaWdpdHNbaV0gPSAoaW50KW07CgkgICAgfQoJICAgIHJldHVybiBkaWdpdHM7Cgl9CgogICAgc3RhdGljIGludFtdIGRpZ2l0aXplU3RyMihsb25nIGwpIHsKICAgICAgICBTdHJpbmcgdmFsdWUgPSBTdHJpbmcudmFsdWVPZihsKTsKICAgICAgICBpbnRbXSBhcnJheSA9IG5ldyBpbnRbdmFsdWUubGVuZ3RoKCldOwogICAgIAogICAgICAgIGZvciAoaW50IGkgPSB2YWx1ZS5sZW5ndGgoKSAtIDEsIGogPSAwOyBpID49IDA7IGktLSwgaisrKSB7CiAgICAgICAgICBhcnJheVtqXSA9IEludGVnZXIucGFyc2VJbnQodmFsdWUuc3Vic3RyaW5nKGksIGkgKyAxKSk7CiAgICB9CiAKICAgIHJldHVybiBhcnJheTsKICB9Cn0K