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;
}
}
}
本人不才,望指点
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;
}
}
}
相关文章推荐
- Linux温习(三)Linux文件和目录管理
- Linux正则表达式-选择性操作与分组操作
- 如何在Ubuntu/CentOS上安装Linux内核4.0
- CentOS下安装配置MySQL
- Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别
- CentOS中安装JDK与Intellij idea
- lamp 源码安装之 centos6.5源码安装之php5.6.9
- linux入门基础——linux命令行文本处理工具
- Linux服务器防Ping
- Linux密钥对配置
- linux常用指令
- Linux运维 第三阶段 (五) DNS(主从,rndc远程控制,子域授权,视图,压力测试)
- Tigase XMPP Server在CentOS部署和配置
- linux命令总结(三)
- centos7下iperf的安装
- CentOS 6.x 升级 Git
- linux 内核分析之list_head
- Linux用户管理(3)
- Linux安装 PyQt-x11-gpl-4.11.3.tar.gz笔记
- CentOS6.3编译fibjs