Additional functions to the Helper class

(by Paolo Cancedda)
This commit is contained in:
Jindra Pet��k
2012-01-02 09:32:19 +01:00
parent f904b36227
commit e092f8c0ca
+72 -1
View File
@@ -20,7 +20,7 @@ package com.jpexs.asdec.helpers;
/**
* Class with helper method
*
* @author JPEXS
* @author JPEXS, Paolo Cancedda
*/
public class Helper {
/**
@@ -124,4 +124,75 @@ public class Helper {
}
return ret;
}
private final static String SPACES12 = " ";
private final static String ZEROS8 = "00000000";
public static String formatHex(int value, int width) {
StringBuilder sb = new StringBuilder();
sb.append(Integer.toHexString(value));
if (width > sb.length()) {
sb.insert(0, ZEROS8, 0, width - sb.length());
}
return sb.toString();
}
public static String formatInt(int value, int width) {
StringBuilder sb = new StringBuilder();
sb.append(value);
if (width > sb.length()) {
sb.insert(0, SPACES12, 0, width - sb.length());
}
return sb.toString();
}
public static String indent(int level, String ss) {
StringBuilder sb = new StringBuilder();
for (int ii = 0; ii < level * 2; ii++) {
sb.append(' ');
}
sb.append(ss);
return sb.toString();
}
public static String bytesToHexString(byte bytes[], int start) {
StringBuilder sb = new StringBuilder();
if (start < bytes.length) {
for (int ii = start; ii < bytes.length; ii++) {
sb.append(formatHex(bytes[ii] & 0xff, 2));
sb.append(' ');
}
sb.setLength(sb.length() - 1);
}
return sb.toString();
}
public static String bytesToHexString(int maxByteCountInString, byte bytes[], int start) {
if (bytes.length - start <= maxByteCountInString) {
return bytesToHexString(bytes, start);
}
byte trailingBytes[] = new byte[maxByteCountInString/2];
byte headingBytes[] = new byte[maxByteCountInString - trailingBytes.length];
System.arraycopy(bytes, start, headingBytes, 0, headingBytes.length);
int startOfTrailingBytes = bytes.length - trailingBytes.length;
System.arraycopy(bytes, startOfTrailingBytes, trailingBytes, 0, trailingBytes.length);
StringBuilder sb = new StringBuilder();
sb.append(bytesToHexString(headingBytes, 0));
if (trailingBytes.length > 0) {
sb.append(" ... ");
sb.append(bytesToHexString(trailingBytes, 0));
}
return sb.toString();
}
public static String format(String str, int len) {
if (len <= str.length()) {
return str;
}
StringBuilder sb = new StringBuilder(str);
for (int ii = str.length(); ii < len; ii++) {
sb.append(' ');
}
return sb.toString();
}
}