From 92c6b6d4f9c1aa79e38801145e5a3f403f611511 Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Fri, 18 Jan 2013 13:30:31 -0600 Subject: [PATCH] Change hexEncode to allow encoding of array region --- src/main/java/com/solab/iso8583/util/HexCodec.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/solab/iso8583/util/HexCodec.java b/src/main/java/com/solab/iso8583/util/HexCodec.java index 9c9311c..b6ffb6f 100644 --- a/src/main/java/com/solab/iso8583/util/HexCodec.java +++ b/src/main/java/com/solab/iso8583/util/HexCodec.java @@ -5,17 +5,18 @@ public class HexCodec { static final char[] HEX = new char[]{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; - public static String hexEncode(byte[] buffer) { + public static String hexEncode(byte[] buffer, int start, int length) { if (buffer.length == 0) { return ""; } int holder = 0; - char[] chars = new char[buffer.length * 2]; - for (int i = 0; i < buffer.length; i++) { + char[] chars = new char[length * 2]; + int pos = -1; + for (int i = start; i < start+length; i++) { holder = (buffer[i] & 0xf0) >> 4; - chars[i * 2] = HEX[holder]; + chars[++pos * 2] = HEX[holder]; holder = buffer[i] & 0x0f; - chars[(i * 2) + 1] = HEX[holder]; + chars[(pos * 2) + 1] = HEX[holder]; } return new String(chars); }