用栈实现钱币显示问题,逗号分隔三位
package math;
import java.util.Stack;
public class Test {
public static void main(String args[]){
long i=1234567;
System.out.println(strFormat(i));
long i1=1234567;
System.out.println(strFormat(i1));
long i2=1234567;
System.out.println(strFormat(i2));
}
/*
* 处理字串型
*/
public static String strFormat(String str){
Stack<Character> sta =new Stack<Character>();
StringBuffer sb=new StringBuffer();
char[] charstr=str.toCharArray();
for(char a:charstr){
sta.push(a);
}
Stack<String> type= new Stack<String>();
int i=0;
while(!sta.empty()){
if(i%4==0){
type.push(",");
} else {
type.push(sta.pop().toString());
}
i++;
}
while(!type.empty()){
String s=type.pop();
sb.append(s);
}
String fs=sb.toString().substring(0,sb.toString().lastIndexOf(","));
return fs;
}
/*
* 处理长整形
*/
public static String strFormat(Long l){
String str=String.valueOf(l);
Stack<Character> sta =new Stack<Character>();
StringBuffer sb=new StringBuffer();
char[] charstr=str.toCharArray();
for(char a:charstr){
sta.push(a);
}
Stack<String> type= new Stack<String>();
int i=0;
while(!sta.empty()){
if(i%4==0){
type.push(",");
} else {
type.push(sta.pop().toString());
}
i++;
}
while(!type.empty()){
String s=type.pop();
sb.append(s);
}
String fs=sb.toString().substring(0,sb.toString().lastIndexOf(","));
return fs;
}
/*
* 处理整形
*/
public static String strFormat(int l){
String str=String.valueOf(l);
Stack<Character> sta =new Stack<Character>();
StringBuffer sb=new StringBuffer();
char[] charstr=str.toCharArray();
for(char a:charstr){
sta.push(a);
}
Stack<String> type= new Stack<String>();
int i=0;
while(!sta.empty()){
if(i%4==0){
type.push(",");
} else {
type.push(sta.pop().toString());
}
i++;
}
while(!type.empty()){
String s=type.pop();
sb.append(s);
}
String fs=sb.toString().substring(0,sb.toString().lastIndexOf(","));
return fs;
}
}
楼主能否把问题说的详细些?
钱币显示问题是什么?