我们老师要求我们用数组去解答?
解决方案 »
- Java 开发实战经典里有一个登陆的实例 有一处定义字符串数组看不懂~请教!!
- 关于对象序列化的基本问题
- 删我贴者,我咒你一辈子买方便面没调料包
- 自动刷新的问题
- 迷惑了?java书看不下了,大家帮我看看这问题
- 已知E:\uplod目录下有一个.txt文件,怎么把它转化成Byte数组呢?(急)
- 问一下 域 field 到底是什么东东
- 我要把上传的图片自动命名,如2004030812:34:05~1000.jpg就是精确到嚎秒级,如何做到,我看了j2sdk,getYear()之类是过期了的
- java新手 接口 类的封装
- String 变量相加 地址值比较的问题
- applet问题
- 谁有JAVA实现的图的算法
import javax.swing.*;
/*将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七),请用java语言编一段程序实现!*/
public class Reader {
private String strNum;
private String strNumChFormat;
private String strNumTemp;
private int intNumLen;
private String strBegin;
public Reader(String strNum) {
this.strNum = strNum;
}
public boolean check(String strNum) {
boolean valid = false;
if (strNum.substring(0,1).equals("0")){
this.strNum = strNum.substring(1);
}
try {
new Double(strNum);
valid = true;
} catch (NumberFormatException ex) {
System.out.println("Bad number format!");
}
return valid;
}
public void init() {
strNumChFormat = "";
intNumLen = strNum.length();
strNumTemp = strNum;
strNumTemp = strNumTemp.replace('1', '一');
strNumTemp = strNumTemp.replace('2', '二');
strNumTemp = strNumTemp.replace('3', '三');
strNumTemp = strNumTemp.replace('4', '四');
strNumTemp = strNumTemp.replace('5', '五');
strNumTemp = strNumTemp.replace('6', '六');
strNumTemp = strNumTemp.replace('7', '七');
strNumTemp = strNumTemp.replace('8', '八');
strNumTemp = strNumTemp.replace('9', '九');
strNumTemp = strNumTemp.replace('0', '零');
strNumTemp = strNumTemp.replace('.', '点');
strBegin = strNumTemp.substring(0, 1);
}
public String readNum() {
if (check(strNum)) {
init();
try {
for (int i = 1, j = 1, k = 1; i < intNumLen; i++) {
if (strNumTemp.charAt(intNumLen - 1) == '零' && i == 1) {
strNumChFormat = "位";
}
else if (strNumTemp.charAt(intNumLen - i) == '零' && j == 1) {
strNumChFormat = "位" + strNumChFormat;
}
else if (strNumTemp.charAt(intNumLen - i) == '点') {
j = 1;
k = 1;
strNumChFormat = strNumTemp.charAt(intNumLen - i) + strNumChFormat;
continue;
}
else {
strNumChFormat = strNumTemp.charAt(intNumLen - i) + strNumChFormat;
}
if (strNumTemp.charAt(intNumLen - i - 1) != '位' &&
strNumTemp.charAt(intNumLen - i - 1) != '零') {
if (j == 1 && i < intNumLen) {
strNumChFormat = '拾' + strNumChFormat;
}
else if (j == 2 && i < intNumLen) {
strNumChFormat = '百' + strNumChFormat;
}
else if (j == 3 && i < intNumLen) {
strNumChFormat = '千' + strNumChFormat;
}
}
if (j == 4 && i < intNumLen) {
j = 0;
}
if (k == 4 && i < intNumLen) {
strNumChFormat = '万' + strNumChFormat;
}
else if (k == 8 && i < intNumLen) {
k = 0;
strNumChFormat = '亿' + strNumChFormat;
}
j++;
k++;
}
while (strNumChFormat.indexOf("位") != -1) {
strNumChFormat = strNumChFormat.replaceAll("位", " ");
}
if (strNumChFormat.substring(0, 2) == "一拾") {
strNumChFormat = strNumChFormat.substring(1, strNumChFormat.length());
}
if (strNumChFormat.indexOf("点") >= 0) {
String rebegin = strNumChFormat.substring(0,
strNumChFormat.indexOf("点"));
String relast = strNumChFormat.substring(strNumChFormat.indexOf("点"),
strNumChFormat.length());
for (int i = 1; i <= relast.length(); i++) {
relast = relast.replaceAll("拾", "");
relast = relast.replaceAll("百", "");
relast = relast.replaceAll("千", "");
relast = relast.replaceAll("万", "");
relast = relast.replaceAll("亿", "");
}
strNumChFormat = rebegin + relast;
}
}
catch (ArrayIndexOutOfBoundsException ex) {
ex.printStackTrace();
}
catch (Exception ex) {
ex.printStackTrace();
}
int off = strNumChFormat.indexOf("点");
strNumChFormat = strBegin + strNumChFormat.substring(0);
}
else {
strNumChFormat = "";
}
return strNumChFormat;
}
public static void main(String args[]) {
try {
String number = args[0].toString();
System.out.println("The number is: " + number);
Reader reader = new Reader(number);
System.out.println("Output String: " + reader.readNum());
}
catch (Exception ex) {
System.out.println("Please input like that: javac Reader <number>");
}
}
}
import java.lang.Math.*;
class Split {
static void dd(double su){
System.out.println ("ff");
String[] part = new String[2];
String q=String.valueOf(su);
part=q.split("[.]");
System.out.println (q.substring(0, 1) );
System.out.println (q.indexOf("."));
double[] limits = {0,1,2,3,4,5,6,7,8,9};
String[] monthNames = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
ChoiceFormat numForm = new ChoiceFormat(limits, monthNames);
double[] unitLimits = {0,1,2,3,4,5,6};
String[] unitNames = {"","拾","佰","仟","万","十万","百万"};
ChoiceFormat unitForm = new ChoiceFormat(unitLimits, unitNames);
Format[] testFormats = {numForm, unitForm};
MessageFormat pattform = new MessageFormat("{0}{1}");
pattform.setFormats(testFormats);
Object[] testArgs = {null, null};
int j = part[0].length();
String gh="";
for (int i =j-1; i >-1; --i) {
testArgs[0] = new Double(part[0].substring(j-1-i,j-i));
testArgs[1] = new Integer(i);
gh=gh+pattform.format(testArgs);
}
if (part. length>1){
j = part[1].length();
gh=gh+"点";
for (int i =0; i <j; ++i) {
testArgs[0] = new Double(part[1].substring(i,i+1));
testArgs[1] = new Double("0");
gh=gh+pattform.format(testArgs);
}
}
System.out.println (gh);
}
public static void main(String a[]){
Split.dd(1233.4);
}
}