See the previous iteration previous iteration.
At this point, I have
- "digit group" length assumed to be always 3
- the user can pass the delimiter character of his/her own
- handles (seems to handle) the minus sign gracefully
- hacked away a test in a conditional
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}
By default, performance is important for me. If you know how to squeeze just a little bit more of that, let me know!
See the previous iteration.
At this point, I have
- "digit group" length assumed to be always 3
- the user can pass the delimiter character of his/her own
- handles (seems to handle) the minus sign gracefully
- hacked away a test in a conditional
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}
By default, performance is important for me. If you know how to squeeze just a little bit more of that, let me know!
See the previous iteration.
At this point, I have
- "digit group" length assumed to be always 3
- the user can pass the delimiter character of his/her own
- handles (seems to handle) the minus sign gracefully
- hacked away a test in a conditional
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}
By default, performance is important for me. If you know how to squeeze just a little bit more of that, let me know!
See the previous iteration.
At this point, I have
- "digit group" length assumed to be always 3
- the user can pass the delimiter character of his/her own
- handles (seems to handle) the minus sign gracefully
- hacked away a test in a conditional
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}
By default, performance is important for me. If you know how to squeeze just a little bit more of that, let me know!
See the previous iteration.
At this point, I have
- "digit group" length assumed to be always 3
- the user can pass the delimiter character of his/her own
- handles (seems to handle) the minus sign gracefully
- hacked away a test in a conditional
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}
By default, performance is important for me. If you know how to squeeze just a little bit more of that, let me know!
See the previous iteration.
At this point, I have
- "digit group" length assumed to be always 3
- the user can pass the delimiter character of his/her own
- handles (seems to handle) the minus sign gracefully
- hacked away a test in a conditional
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}
By default, performance is important for me. If you know how to squeeze just a little bit more of that, let me know!
"digit group" length assumed to be always 3,
"digit group" length assumed to be always 3the user can pass the delimiter character of his/her own,
the user can pass the delimiter character of his/her ownhandles (seems to handle) the minus sign gracefully,
handles (seems to handle) the minus sign gracefullyhacked away a test in a conditional.
hacked away a test in a conditionalimport java.util.Scanner; public class Main { /** * Handles <b>most</b> locales. */ private static final int GROUP_LENGTH = 3; private static final char DEFAULT_DELIMITER_CHAR = ' '; public static String neatify(final long number, final char delimiter) { final char[] charArray = Long.toString(number).toCharArray(); final StringBuilder sb = new StringBuilder(); int index; if (charArray[0] == '-') { sb.append('-'); index = 1; } else { index = 0; } sb.append(charArray[index++]); for (; index < charArray.length; ++index) { if ((charArray.length - index) % GROUP_LENGTH == 0) { sb.append(delimiter); } sb.append(charArray[index]); } return sb.toString(); } public static String neatify(final long number) { return neatify(number, DEFAULT_DELIMITER_CHAR); } public static void main(final String... args) { final Scanner scanner = new Scanner(System.in); while (scanner.hasNextLong()) { System.out.println(neatify(scanner.nextLong())); } } }
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}
"digit group" length assumed to be always 3,
the user can pass the delimiter character of his/her own,
handles (seems to handle) the minus sign gracefully,
hacked away a test in a conditional.
import java.util.Scanner; public class Main { /** * Handles <b>most</b> locales. */ private static final int GROUP_LENGTH = 3; private static final char DEFAULT_DELIMITER_CHAR = ' '; public static String neatify(final long number, final char delimiter) { final char[] charArray = Long.toString(number).toCharArray(); final StringBuilder sb = new StringBuilder(); int index; if (charArray[0] == '-') { sb.append('-'); index = 1; } else { index = 0; } sb.append(charArray[index++]); for (; index < charArray.length; ++index) { if ((charArray.length - index) % GROUP_LENGTH == 0) { sb.append(delimiter); } sb.append(charArray[index]); } return sb.toString(); } public static String neatify(final long number) { return neatify(number, DEFAULT_DELIMITER_CHAR); } public static void main(final String... args) { final Scanner scanner = new Scanner(System.in); while (scanner.hasNextLong()) { System.out.println(neatify(scanner.nextLong())); } } }
- "digit group" length assumed to be always 3
- the user can pass the delimiter character of his/her own
- handles (seems to handle) the minus sign gracefully
- hacked away a test in a conditional
import java.util.Scanner;
public class Main {
/**
* Handles <b>most</b> locales.
*/
private static final int GROUP_LENGTH = 3;
private static final char DEFAULT_DELIMITER_CHAR = ' ';
public static String neatify(final long number,
final char delimiter) {
final char[] charArray = Long.toString(number).toCharArray();
final StringBuilder sb = new StringBuilder();
int index;
if (charArray[0] == '-') {
sb.append('-');
index = 1;
} else {
index = 0;
}
sb.append(charArray[index++]);
for (; index < charArray.length; ++index) {
if ((charArray.length - index) % GROUP_LENGTH == 0) {
sb.append(delimiter);
}
sb.append(charArray[index]);
}
return sb.toString();
}
public static String neatify(final long number) {
return neatify(number, DEFAULT_DELIMITER_CHAR);
}
public static void main(final String... args) {
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLong()) {
System.out.println(neatify(scanner.nextLong()));
}
}
}