enhanced ASCII byte[] -> String conversion

pull/1/head
Michael Peter Christen 11 years ago
parent 4751ed974f
commit 2415e3db43

@ -106,22 +106,19 @@ public class ASCII implements Comparator<String> {
public final static String String(final byte[] bytes) { public final static String String(final byte[] bytes) {
if (bytes == null) return null; if (bytes == null) return null;
StringBuilder sb = new StringBuilder(bytes.length); final char[] c = new char[bytes.length];
for (byte b : bytes) { for (int i = bytes.length - 1; i >= 0; i--) c[i] = (char) bytes[i];
if (b < 0) throw new IllegalArgumentException(); return new String(c);
sb.append((char) b);
}
return sb.toString();
} }
public final static String String(final byte[] bytes, final int offset, final int length) { public final static String String(final byte[] bytes, final int offset, final int length) {
int l = Math.min(length, bytes.length - offset); int l = Math.min(length, bytes.length - offset);
StringBuilder sb = new StringBuilder(l); final char[] c = new char[l];
for (int i = 0; i < l; ++ i) { for (int i = 0; i < l; ++ i) {
if (bytes[i + offset] < 0) throw new IllegalArgumentException(); if (bytes[i + offset] < 0) throw new IllegalArgumentException();
sb.append((char) bytes[i + offset]); c[i] = (char) bytes[i + offset];
} }
return sb.toString(); return new String(c);
} }
public final static byte[] getBytes(final String s) { public final static byte[] getBytes(final String s) {

Loading…
Cancel
Save