[此贴子已经被作者于2007-6-12 18:44:19编辑过]
[此贴子已经被作者于2007-6-12 18:44:19编辑过]
public class Test{
public static void main(String [] args)throws Exception{
String s=new String("中ABC国DE");
byte [] b = s.getBytes("GBK");
String s1= new String(b,0,7,"GBK");
String s2 = new String(b,0,5,"gbk");
System.out.println(s1);
System.out.println(s2);
}
}
我把代码和大家分享!
你们自己把代码补全就可以完成了!~
以后也需要大家相互交流和进步~thank you
________________________________________
/**功能:将金额转换为汉字大写金额
* @param amountData 输入金额,最大位数为17位
* @return 转换成大写汉字的金额</br></br>
*示例:</br>
* amountData("1234678912") 值为:壹仟贰佰叁拾肆万陆仟柒佰捌拾玖元壹角贰分</br>
*/
public static String amountToDbcs(String amountData) {
if(amountData==null||amountData.length()>17) {
return "金额越界";
}
if(BraceString.isNum(amountData)==false) {//判断输入的字符串是否是数字,BraceString类自己实现,这个应该很好做
return "金额错";
}
String strTemp=BraceString.leftTrimZero(amountData);//去掉字符串前的0,BraceString类自己实现
int strTempLen=strTemp.length();
if(strTempLen==0) {
return "零分";
}
char [] larr={'分','角','元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万','拾','佰','整'};
char [] sarr={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
char [] retVal=new char[36];
for (int i=0; i<36; i++) {
retVal[i] = ' ';
}
int zFlag=0;//是否为零标志
int i=strTempLen-1;
int k;//sarr下标,与strTemp中数字相对应
int Len=0;//reVal下标
while(i>=0) {
k=Character.getNumericvalue(strTemp.charAt(strTempLen-i-1));
if(k==0) {
if(larr[i]=='元'||larr[i]=='万'||larr[i]=='亿') {
if(zFlag==1) {
if(retVal[Len-2]=='亿'&&larr[i]=='万') {
i--;
continue;
}
retVal[Len]=retVal[Len-1];
retVal[Len-1]=larr[i];
Len++;
}
else {
retVal[Len]=larr[i];
Len++;
retVal[Len]=sarr[k];
Len++;
zFlag=1;
}
}
else {
if(zFlag==0) {
retVal[Len]=sarr[k];
Len++;
zFlag=1;
}
}
}
else {
zFlag=0;
retVal[Len]=sarr[k];
Len++;
retVal[Len]=larr[i];
Len++;
}
i--;
}
if(retVal[Len-1]=='零') {
if(retVal[Len-2]!='角') {
retVal[Len-1]=larr[17];
}
else {
retVal[Len-1]=0;
}
}
return new String(retVal).trim();
}