⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 convert.java

📁 一个金额转换的java源程序,此代码的功能是实现小写金额转换为大写金额.
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class convert extends Frame implements ActionListener {

	TextField tfield;
	Label xianshi;
	Button button;

	public convert(String title) {

		super(title);
		setLayout(new GridLayout(3, 1));
		tfield = new TextField();
		xianshi = new Label("大写:");
		button = new Button("转换");
		add(tfield);
		add(button);
		add(xianshi);

		button.addActionListener(this);
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				convert.this.dispose();
			}
		});
	}

	public void actionPerformed(ActionEvent e) {
		String s = tfield.getText();
		StringBuffer ss= new StringBuffer();
		StringBuffer  sss=new StringBuffer();
		int zhenghui = 0;
		if (s.indexOf('.') == -1)
			{
			zhenghui = s.length();
		  
			}
		else {
			 zhenghui = s.indexOf('.');
		     }
		for (int n = 1; n <= zhenghui; n++) {
			switch (s.charAt(zhenghui - n)) {
			case '0':
				ss.insert(0, '零');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;
			case '1':
				ss.insert(0, '壹');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '2':
				ss.insert(0, '贰');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '3':
				ss.insert(0, '叁');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '4':
				ss.insert(0, '肆');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '5':
				ss.insert(0, '伍');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '6':
				ss.insert(0, '陆');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '7':
				ss.insert(0, '柒');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '8':
				ss.insert(0, '捌');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;

			case '9':
				ss.insert(0, '玖');
				if (n % 4 == 1)
					ss.insert(1, '标');
				if (n % 4 == 2)
					ss.insert(1, '拾');
				if (n % 4 == 3)
					ss.insert(1, '佰');
				if (n % 4 == 0)
					ss.insert(1, '千');
				break;
			}
		}

		
		for (int n = 0; n < ss.length(); n++)                           //处理连续出现0,并把其对应的位删掉
		{
			if (ss.charAt(n) == '零') {
				if (ss.charAt(n + 1) != '标')
					ss.deleteCharAt(n + 1);

			}

		}
			
		
		    ss=new StringBuffer(ss.toString().replace("零零零","零"));
			ss=new StringBuffer(ss.toString().replace("零零","零"));     
			ss=new StringBuffer(ss.toString().replace("零标","标零"));
			ss=new StringBuffer(ss.toString().replace("零零","零"));            //把多个零convert为一个零
            ss=new StringBuffer(ss.toString().replace("标零标零标零","亿元零"));  //特殊情况直接转换
            ss=new StringBuffer(ss.toString().replace("标零标零零","亿元零"));
       
            int n[]=new int[4];n[0]=0;n[1]=0;n[2]=0;n[3]=0;
            int k=0;    
            for(int i=1;i<=ss.length();i++)
                  { if(ss.charAt(ss.length()-i)=='标')
            		   n[++k]=ss.length()-i;
                  }
            
           if(k==1){ss.deleteCharAt(n[1]);ss.insert(n[1], '元');}
           if(k==2){ss.deleteCharAt(n[2]);ss.insert(n[2], '万');ss.deleteCharAt(n[1]);ss.insert(n[1], '元');}
           if(k==3){ss.deleteCharAt(n[3]);ss.insert(n[3], '亿');ss.deleteCharAt(n[2]);ss.insert(n[2], '万');ss.deleteCharAt(n[1]);ss.insert(n[1], '元');}
		   k=ss.length();
           
		
		   
		   
	 if (s.indexOf('.') == -1)                 //无小数点情况
			{
				if(ss.charAt(k-1)=='零')
					ss.deleteCharAt(k-1);
				    ss.append('整');
			}
	 else 
	   {                                      // 有小数点情况
			
		   sss.append(s.substring(s.indexOf('.')));
           for (int m = 0; m <sss.length(); m++) 
           {
   			    switch (sss.charAt(m))
   			    {
   			     case '.':ss.append('点');break;
   			     case '0':ss.append('零');break;
   			     case '1':ss.append('壹');break;
   			     case '2':ss.append('贰');break;
   			     case '3':ss.append('叁');break;
   			     case '4':ss.append('肆');break;
   			     case '5':ss.append('伍');break;
   			     case '6':ss.append('陆');break;
   			     case '7':ss.append('柒');break;
   			     case '8':ss.append('捌');break;
   			     case '9':ss.append('玖');break;
   			   }
           }
           for (int m = 0; m <sss.length()-1; m++) 
        	   if(ss.charAt(k+m+1)=='零'&ss.charAt(k+m+2)=='零')
        	   { 
        		   ss.deleteCharAt(k+m+1);
        		   //m=m-1;
        	   }
           
           
           
           
           
		}
     
           
          
          xianshi.setText(ss.toString());

	}

	public static void main(String[] args) {

		convert huanhuan = new convert("钱币");
		huanhuan.setSize(400, 100);
		huanhuan.setVisible(true);

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -