写一个转换的类,我把我写的给你参考一下!
StringUtil:
package com.investoday.util;import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;public class StringUtil
{
public static String getGbcode(String str)
{
if(str == null)
return ""; try
{
byte[]bytesStr = str.getBytes("ISO-8859-1");
return new String(bytesStr,"GBK");
}
catch(Exception ex)
{
return str;
}
} public static String getUnicode(String str)
{
if(str == null)
return ""; try
{
byte[]bytesStr = str.getBytes();
return new String(bytesStr,"ISO-8859-1");
}
catch(Exception ex)
{
return str;
}
} public static String getDate(java.sql.Date d)
{
if(d == null)
return "";
else
return d.toString();
} public static String getDouble(String str, int i)
{
if(str == null)
return "N/A";
else
{
try
{
double d = Double.parseDouble(str);
boolean m = false;
if(d >= 1000000 || d <= -1000000)
{
d = d / 1000000.00;
m = true;
}
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(i);
nf.setMinimumFractionDigits(i);
if(m)
return nf.format(d) + "M";
else
return nf.format(d);
}
catch(Exception e)
{
return "N/A";
}
}
} public static String zeroToNull(String str, int i)
{
if(str == null)
return "N/A";
else
{
try
{
double d = Double.parseDouble(str); d = d / 1000000.00; if(d == 0)
return "--"; NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(i);
nf.setMinimumFractionDigits(i); return nf.format(d);
}
catch(Exception e)
{
return "N/A";
}
}
}    public static String getMillion(String str, int i)
{
if(str == null)
return "N/A";
else
{
try
{
                if(str.indexOf("M")>-1){
                    return str.substring(0,str.indexOf("M")) ;
                }
                str = replace(str,",","") ; double d = Double.parseDouble(str);
d = d / 1000000.00;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(i);
nf.setMinimumFractionDigits(i);
return nf.format(d);
}
catch(Exception e)
{
return "N/A";
}
}
}
public static String getWan(String str, int i)
{
if(str == null)
return "N/A";
else
{
try
{
double d = Double.parseDouble(str); d = d / 10000.00; NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(i);
nf.setMinimumFractionDigits(i); return nf.format(d);
}
catch(Exception e)
{
return "N/A";
}
}
} public static String getString(String str)
{
if(str == null)
return "N/A"; return str;
} public static String nullToEmpty(String str)
{
if(str == null)
return ""; return str;
} public static final String replace(String line, String oldString, String newString)
{
if (line == null)
{
return null;
}
int i=0;
if ((i=line.indexOf( oldString, i )) >= 0)
{
char [] line2 = line.toCharArray();
char [] newString2 = newString.toCharArray();
int oLength = oldString.length();
StringBuffer buf = new StringBuffer(line2.length);
buf.append(line2, 0, i).append(newString2);
i += oLength;
int j = i;
while((i=line.indexOf( oldString, i )) > 0)
{
buf.append(line2, j, i-j).append(newString2);
i += oLength;
j = i;
}
buf.append(line2, j, line2.length - j);
return buf.toString();
}
return line;
} public static String escapeToHtml(String str)
{
String newStr;
newStr = replace(str, "\n", "<br>");
newStr = replace(newStr, " ", "&nbsp;");
return newStr;
} public static String getSub(String str, int len)
{               char[] ch = getGbcode(str).toCharArray();
String rtnStr = "";
int j = 0;
for(int i=0; i<ch.length && j<len; i++)
{
if((new Character(ch[i])).hashCode() > 255)
{
j = j+2;
rtnStr = rtnStr + (new Character(ch[i])).toString();
}
else
{
j = j+1;
rtnStr = rtnStr + (new Character(ch[i])).toString();
}
} if(j > len)
rtnStr = rtnStr.substring(0,rtnStr.length()-1) + "."; if(j >= len)
rtnStr = rtnStr + ".."; return getUnicode(rtnStr);
} public static String getReportSub(String str, int len)
{
char[] ch = getGbcode(str).toCharArray();
String rtnStr = "";
int j = 0; for(int i=0; i<ch.length; i++)
{
if((new Character(ch[i])).hashCode() > 255)
{
j = j+2;
}
else
{
j = j+1;
}
}

解决方案 »

  1.   


    if(j <= len)
    return str; j = 0; for(int i=0; i<ch.length && j<len; i++)
    {
    if((new Character(ch[i])).hashCode() > 255)
    {
    j = j+2;
    rtnStr = rtnStr + (new Character(ch[i])).toString();
    }
    else
    {
    j = j+1;
    rtnStr = rtnStr + (new Character(ch[i])).toString();
    }
    } if(j > len)
    rtnStr = rtnStr.substring(0,rtnStr.length()-1) + "."; if(j >= len)
    rtnStr = rtnStr + "."; return getUnicode(rtnStr);
    } public static String getFixedString(String str, int l)
    {
    int len = l - 2;
    char[] ch = str.toCharArray();
    String rtnStr = "";
    int j = 0;
    for(int i=0; i<ch.length && j<len; i++)
    {
    if((new Character(ch[i])).hashCode() > 255)
    {
    j = j+2;
    rtnStr = rtnStr + (new Character(ch[i])).toString();
    }
    else
    {
    j = j+1;
    rtnStr = rtnStr + (new Character(ch[i])).toString();
    }
    } if(j > len)
    {
    rtnStr = rtnStr.substring(0,rtnStr.length()-1) + ".";
    j = len;
    } for(int i=0; i<l-j; i++)
    rtnStr = rtnStr + "."; return rtnStr;
    } public static String getToday()
    {
    return (new java.sql.Date(System.currentTimeMillis())).toString();
    } public static String getLastYear()
    {
    String today = getToday();
    String year = today.substring(0, 4); try
    {
    int i = Integer.parseInt(year) - 1;
    year = (new Integer(i)).toString();
    }
    catch(Exception e)
    {
    } return year;
    } public static String getSubstring(String str, int i)
    {
    try
    {
    return str.substring(i);
    }
    catch(Exception e)
    {
    return str;
    }
    }      public static String getNull(String str){
                    String temp = "";
                    if(str == null || str.equals("") || str.equals("null")){
                        str = temp;
                    }
                    return str;
          }      public static String getDateFormat(String format){
    SimpleDateFormat bartDateFormat = new SimpleDateFormat(format);
    Date d = new Date();
             return bartDateFormat.format(d);
        }     public static String setAuthor(String author){
             String[] index_p = {","," ","、",","};
             for(int i = 0;i < 4;i++){
                int temp = author.indexOf(index_p[i]);
                if(temp != -1){
                   author = author.substring(0,temp)+"...";
                   break;
                }
                else{
                  int len = author.length();
                  if(len >=4){
                    author = author.substring(0,4);
                  }
                }
             }
             return author;
      } public static String getMonthDay(String str)
    {
    if(str == null)
    return ""; return str.substring(str.indexOf("-")+1, str.length());
    }    public static String getLine(String old_s){
           String new_s = "";
           if(old_s!=null){
           int i = 0 ;
           for(int kk = 0 ;kk<old_s.length() ;kk++){
             char cr = old_s.charAt(kk) ;
             if((new Character(cr)).hashCode()==13||(new Character(cr)).hashCode()==10){
               if(i==0){
                 //new_s +="\\n\"\n+\"";
                 new_s +="\\n";
               }
               i++;
             }else {
               i=0 ;    //双引号处理
               if((new Character(cr)).hashCode()==34)
                 new_s += "\\"+(new Character(cr)).toString() ;
               else
                 new_s += (new Character(cr)).toString() ;
             }       }
           }
           return new_s;
            }}这里面基本上功能都实现啦!