import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
public class StringUtil {
public static boolean isNumber(String string){
try{
Double.parseDouble(string);
}catch(Exception e){
return false;
}
return true;
}
public static boolean isDate(String date,String pattern){
if (isEmpty(date)){
return false;
}
try{
DateUtil.parseDate(date, pattern);
}catch(Exception e){
return false;
}
return true;
}
public static boolean isEmpty(String string){
if ( string==null || "".equals(string.trim())){
return true;
}
return false;
}
public static String inputStream2String(InputStream is){
BufferedReader in = new BufferedReader(new InputStreamReader(is));
StringBuffer buffer = new StringBuffer();
String line = "";
try {
while ((line = in.readLine()) != null){
buffer.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return buffer.toString();
}
/**
*
* 对输入数据库中的回车换行进行处理
*/
public static String replaceoperationChar(String message){
if(message == null){
return null;
}
char content[] = new char[message.length()];
message.getChars(0, message.length(), content, 0);
StringBuffer result = new StringBuffer();
for(int i = 0; i < content.length;i++){
switch(content[i]){
case '\'' :
result.append("/");
break;
default :
result.append(content[i]);
}
}
return result.toString();
}
public static String replaceoperationWebChar(String message){
if(message == null){
return null;
}
char content[] = new char[message.length()];
message.getChars(0, message.length(), content, 0);
StringBuffer result = new StringBuffer();
for(int i = 0; i < content.length;i++){
switch(content[i]){
case '/' :
result.append(File.separator);
break;
default :
result.append(content[i]);
}
}
return result.toString();
}
/**
*
* 对输入数据库中的回车换行进行处理
*/
public static String operationChar(String message){
if(message == null){
return null;
}
char content[] = new char[message.length()];
message.getChars(0, message.length(), content, 0);
StringBuffer result = new StringBuffer(content.length + 50);
for(int i = 0; i < content.length;i++){
switch(content[i]){
case '\'' :
result.append("'");
break;
case '\"' :
result.append(""");
break;
case '<' :
result.append("<");
break;
case '>' :
result.append(">");
break;
case '&' :
result.append("&");
break;
case ' ' :
result.append(" ");
break;
case '\n':
result.append("<br>");
break;
default :
result.append(content[i]);
}
}
return result.toString();
}
/**
*
*/
public static String deOperationChar(String message){
if(message == null){
return null;
}
// StringBuffer result = new StringBuffer();
/**
* 输出到页面对换行的处理
*/
message.replaceAll("<", "<");
message.replaceAll(">", ">");
message.replaceAll("&", "&");
message.replaceAll(""","\"");
message.replaceAll(" ", " ");
/**
* 下面的两个while语句也可以对输出到页面的回车换行进行处理
* 若用下面的方法则应该屏蔽上面的operationChar(String str)方法
* 不然会导致有时输出有误
*/
// while(message.indexOf("\n")!=-1){
// message = message.substring(0,message.indexOf("\n"))+"<br>"+message.substring(message.indexOf("\n")+1);
// }
// while(message.indexOf(" ")!=-1){
// message = message.substring(0,message.indexOf(" "))+" "+message.substring(message.indexOf(" ")+1);
// }
// message.replaceAll("<br />", "<br>");
//message.replaceAll("\r\n", "<br />");
return message;
}
/**
* 产生固定长度的字符串。
* 如果src的长度比length参数大,返回原始src,否则将在前(或后)填补padding字符。
* @param src 源字符串
* @param length 期望的长度
* @param padding 填补的字符
* @param leadingPad 在最前面填补还是在最后面填补。
* @return 填补以后的字符串
*/
public static String fixLength(String src, int length, char padding, boolean leadingPad) {
if (src == null) {
src = "";
}
if (length <= src.length()) {
return src;
}
StringBuilder sb = new StringBuilder(src);
for (int i = src.length(), j = length; i < j; i++) {
if (leadingPad) {
sb.insert(0, padding);
} else {
sb.append(padding);
}
}
return sb.toString();
}
/**
* url解密
*
* @param encodedUrl
* @return String
* @throws IOException
*/
public final static String decodeUri(String encodedUrl) throws IOException {
String[] url = encodedUrl.replace("|", ",").split(",");
byte[] urlByte = new byte[url.length];
// for (int i = 0; i < url.length; i++) {
// System.out.println(url[i]);
// }
for (int i = 0; i < url.length; i++) {
if (!url[i].equals(""))
urlByte[i] = Byte.parseByte(url[i]);
}
ByteArrayInputStream bin = new ByteArrayInputStream(urlByte);
DataInputStream din = new DataInputStream(bin);
String oriStr = din.readUTF();
din.close();
bin.close();
return oriStr;
}
/**
* url加密
*
* @param url
* @return String
* @throws IOException
*/
public final static String encodeUri(String url) throws IOException {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream(bout);
dout.writeUTF(url);
byte[] byteUrl = bout.toByteArray();
StringBuffer buf = new StringBuffer();
for (int i = 0; i < byteUrl.length; i++) {
buf.append(byteUrl[i] + "|");
}
dout.close();
bout.close();
return buf.toString();
}
}