您的位置:首页 > 运维架构 > Linux

Linux系统DNS服务器的搭建与配置

2015-06-07 21:30 676 查看
之前参考了一位前辈的程序,用awt写了个简单的程序
本人不才,望指点
package mianshi.guanglianda;

import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AWTSimpleToBig extends Frame {

private TextField simple = new TextField(10);
private TextField big = new TextField(50);
private Button button = new Button("SimpleToBig");

public static void main(String[] args) {
new AWTSimpleToBig().lanch();
}

public void lanch() {
Panel p = new Panel();

p.add(simple);
p.add(button);
p.add(big);

this.setTitle("金额转换");
this.setBounds(300, 100,1,1);
this.add(p);

this.addWindowListener(new WindowAdapter(){

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}

});

/*
* button 被单击时处理的事件
*/
button.addMouseListener(new ButtonMonitor());

this.pack();
this.setVisible(true);
}

class ButtonMonitor extends MouseAdapter {

@Override
public void mouseClicked(MouseEvent e) {
String simpleStr = simple.getText();
double money = Double.parseDouble(simpleStr);
String result = new ButtonMonitor().simpleToBig(money);
big.setText(result);
}

/*
* 转换程序
*/
public String simpleToBig(double money) {

String result = "";

char[] hunit = {'拾','佰','仟'}; //段内的量度
char[] vunit = {'万','亿'}; //段间的量度
char[] digit = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; //小写对应的大写

long longMoney = (long)(money * 100);
String strMoney = String.valueOf(longMoney); //将小数变成整数,再放入字符串中

String head = strMoney.substring(0,strMoney.length() - 2); //整数部分
String tail = strMoney.substring(strMoney.length() - 2); //小数部分

String prefix = ""; //存放转换的整数部分
String suffix = ""; //存放转换的小数部分

if(tail.equals("00")) {
suffix += "整";
}else {
char tailChar[] = tail.toCharArray();
suffix += digit[tailChar[0] - '0'] + "角" //将小数部分表示出来
+ digit[tailChar[1] - '0'] + "分"; //'0' ASCII 为 48,相减得索引号
}

char headChar[] = head.toCharArray();

/*
* 考虑零的情况,记录0的个数
*/

char zero = '0';
byte zeroSize = 0;

/*
* 先不考虑有0的情况,有点小复杂,因为有0的地方不能有单位
*
* 等能实现大概功能时,再来考虑有0的情况
*/
for(int i=0;i<headChar.length;i++) {
int idx = (headChar.length - i - 1) % 4; //判断“段内”,"十,佰,千" idx=0,表示每4位分段了
int vidx = (headChar.length - i - 1) / 4; //判断“段间”,“万,亿”

if(headChar[i] == '0') { //考虑0的情况了
zeroSize ++;
if(zero == '0') {
zero = digit[0];
}else if(idx == 0 && zeroSize < 4 && vidx > 0) {
prefix += vunit[vidx - 1]; //当遇到1,1000,1234时, 1千万才能表示出来
zero = '0'; //当1千万表示出来时,“零”就不需要了,在后来判断zero != 0
}
continue;
}

if(zero != '0') { //没有转成千万时,就将”零“加入
prefix += zero; //不至于出现很多个”零“
}

zeroSize = 0; //还原成以前的

prefix += digit[headChar[i] - '0']; //‘1’变成‘壹’

if(idx > 0) {
prefix += hunit[idx - 1]; //加上 "十,佰,千"
}
if(idx == 0 && vidx > 0) {
prefix += vunit[vidx - 1]; //加上 “万,亿”
}
}

if(prefix.length() > 0) {
result = prefix + "园" + suffix ;
}

return result;
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: