Wednesday, August 12, 2009

Generic class for different currency

public class GenericFormatCurrency {
String preixStr="";
String postfixStr = "";
int postfixLen=0;
String[] preixStrArray;
int prefixArrayLen = 0;
int prefixLen1=0;
int prefixLen2=0;
format(String formatStr){
preixStr=formatStr.substring(0,formatStr.lastIndexOf("."));
postfixStr=formatStr.substring(formatStr.lastIndexOf(".")+1);
postfixLen = postfixStr.length();
preixStrArray = preixStr.split(",");
prefixArrayLen = preixStrArray.length;
if(prefixArrayLen-1==0){
prefixLen1=preixStrArray[0].length();
}else{
prefixLen1=preixStrArray[prefixArrayLen-1].length();
prefixLen2=preixStrArray[prefixArrayLen-2].length();
}
}

public void formaNumber(String number) {
//format format = new format("##,####.0000");
//String number="87654321.12345";
String pre=number.substring(0,number.lastIndexOf("."));
String postnum=number.substring(number.lastIndexOf(".")+1);
String output="";
int length1=this.prefixLen1;
int length2=this.prefixLen2;
if(postnum.trim().length()<=this.postfixLen){
output="."+postnum;
}else{
output="."+postnum.substring(0,this.postfixLen);
}
System.out.println(output);
if(pre.trim().length()
output=pre+output ;
}else{
while(pre.trim().length()>0){
output=","+pre.substring(pre.trim().length()-length1,pre.trim().length())+output;
pre = pre.substring(0,pre.trim().length()-length1);
length1 = length2;
if(pre.trim().length()<=this.prefixLen1){
output = pre+output;
break;
}
}
}
System.out.println(output);
}
public static void main(String[] args) {
GenericFormatCurrency format = new GenericFormatCurrency("##,####.0000");
String number="87654321.12345";
format.formaNumber(number);
System.out.println("-------------------------");
format.formaNumber("87654321.1234");
}
}

0 comments:

Post a Comment