80 lines
2.2 KiB
Java
80 lines
2.2 KiB
Java
package jxl.biff;
|
|
|
|
import common.Logger;
|
|
import java.io.UnsupportedEncodingException;
|
|
import jxl.WorkbookSettings;
|
|
|
|
public final class StringHelper {
|
|
private static Logger logger = Logger.getLogger(StringHelper.class);
|
|
|
|
public static byte[] getBytes(String s) {
|
|
return s.getBytes();
|
|
}
|
|
|
|
public static byte[] getBytes(String s, WorkbookSettings ws) {
|
|
try {
|
|
return s.getBytes(ws.getEncoding());
|
|
} catch (UnsupportedEncodingException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static byte[] getUnicodeBytes(String s) {
|
|
try {
|
|
byte[] b = s.getBytes("UnicodeLittle");
|
|
if (b.length == s.length() * 2 + 2) {
|
|
byte[] b2 = new byte[b.length - 2];
|
|
System.arraycopy(b, 2, b2, 0, b2.length);
|
|
b = b2;
|
|
}
|
|
return b;
|
|
} catch (UnsupportedEncodingException e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static void getBytes(String s, byte[] d, int pos) {
|
|
byte[] b = getBytes(s);
|
|
System.arraycopy(b, 0, d, pos, b.length);
|
|
}
|
|
|
|
public static void getUnicodeBytes(String s, byte[] d, int pos) {
|
|
byte[] b = getUnicodeBytes(s);
|
|
System.arraycopy(b, 0, d, pos, b.length);
|
|
}
|
|
|
|
public static String getString(byte[] d, int length, int pos, WorkbookSettings ws) {
|
|
try {
|
|
byte[] b = new byte[length];
|
|
System.arraycopy(d, pos, b, 0, length);
|
|
return new String(b, ws.getEncoding());
|
|
} catch (UnsupportedEncodingException e) {
|
|
logger.warn(e.toString());
|
|
return "";
|
|
}
|
|
}
|
|
|
|
public static String getUnicodeString(byte[] d, int length, int pos) {
|
|
try {
|
|
byte[] b = new byte[length * 2];
|
|
System.arraycopy(d, pos, b, 0, length * 2);
|
|
return new String(b, "UnicodeLittle");
|
|
} catch (UnsupportedEncodingException e) {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
public static final String replace(String input, String search, String replace) {
|
|
String fmtstr = input;
|
|
int pos = fmtstr.indexOf(search);
|
|
while (pos != -1) {
|
|
StringBuffer tmp = new StringBuffer(fmtstr.substring(0, pos));
|
|
tmp.append(replace);
|
|
tmp.append(fmtstr.substring(pos + search.length()));
|
|
fmtstr = tmp.toString();
|
|
pos = fmtstr.indexOf(search, pos + replace.length());
|
|
}
|
|
return fmtstr;
|
|
}
|
|
}
|