📄 convert.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 + -