- 相關推薦
JavaEE面試問題匯總(3)
一、
編程題
1.
package test.format;
import java.text.NumberFormat;
import java.util.HashMap;
public class SimpleMoneyFormat {
public static final String EMpTY = \"\";
public static final String ZERO = \"零\";
public static final String ONE = \"壹\";
public static final String TWO = \"貳\";
public static final String THREE = \"叁\";
public static final String FOUR = \"肆\";
public static final String FIVE = \"伍\";
public static final String SIX = \"陸\";
public static final String SEVEN = \"柒\";
public static final String EIGHT = \"捌\";
public static final String NINE = \"玖\";
public static final String TEN = \"拾\";
public static final String HUNDRED = \"佰\";
public static final String THOUSAND = \"仟\";
public static final String TEN_THOUSAND = \"萬\";
public static final String HUNDRED_MILLION = \"億\";
public static final String YUAN = \"元\";
public static final String JIAO = \"角\";
public static final String FEN = \"分\";
public static final String DOT = \".\";
private static SimpleMoneyFormat formatter = null;
private HashMap chineseNumberMap = new HashMap();
private HashMap chineseMoneypattern = new HashMap();
private NumberFormat numberFormat = NumberFormat.getInstance();
private SimpleMoneyFormat() {
numberFormat.setMaximumFractionDigits
numberFormat.setMinimumFractionDigits
numberFormat.setGroupingUsed(false);
chineseNumberMap.put(\"0\", ZERO);
chineseNumberMap.put(\"1\", ONE);
chineseNumberMap.put(\"2\", TWO);
chineseNumberMap.put(\"3\", THREE);
chineseNumberMap.put(\"4\", FOUR);
chineseNumberMap.put(\"5\", FIVE);
chineseNumberMap.put(\"6\", SIX);
chineseNumberMap.put(\"7\", SEVEN);
chineseNumberMap.put(\"8\", EIGHT);
chineseNumberMap.put(\"9\", NINE);
chineseNumberMap.put(DOT, DOT);
chineseMoneypattern.put(\"1\", TEN);
chineseMoneypattern.put(\"2\", HUNDRED);
chineseMoneypattern.put(\"3\", THOUSAND);
chineseMoneypattern.put(\"4\", TEN_THOUSAND);
chineseMoneypattern.put(\"5\", TEN);
chineseMoneypattern.put(\"6\", HUNDRED);
chineseMoneypattern.put(\"7\", THOUSAND);
chineseMoneypattern.put(\"8\", HUNDRED_MILLION);
}
public static SimpleMoneyFormat getInstance() {
if (formatter == null)
formatter = new SimpleMoneyFormat();
return formatter;
}
public String format(String moneyStr) {
checkprecision(moneyStr);
String resu<
result = convertToChineseNumber(moneyStr);
result = addUnitsToChineseMoneySt
return resu<
}
public String format(double moneyDouble) {
return format(numberFormat.format(moneyDouble));
}
public String format(int moneyInt) {
return format(numberFormat.format(moneyInt));
}
public String format(long moneyLong) {
return format(numberFormat.format(moneyLong));
}
public String format(Number moneyNum) {
return format(numberFormat.format(moneyNum));
}
private String convertToChineseNumber(String moneyStr) {
String resu<
StringBuffer cMoneyStringBuffer = new StringBuffer();
for (int i = 0; i < moneyStr.length(); i++) {
cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1)));
}
//拾佰仟萬億等都是漢字里面才有的單位,加上它們
int indexOfDot = cMoneyStringBuffer.indexOf(DOT);
int moneypatternCursor = 1;
for (int i = indexOfDot - 1; i > 0; i--) {
cMoneyStringBuffer.(i, chineseMoneypattern.get(EMpTY + moneypatternCursor));
moneypatternCursor = moneypatternCursor == 8 ? 1 : moneypatternCursor + 1;
}
String fractionpart = cMoneyStringBuffer.substring(cMoneyStringBuffer.indexOf(\".\"));
cMoneyStringBuffer.(cMoneyStringBuffer.indexOf(\".\"), cMoneyStringBuffer.length());
while (cMoneyStringBuffer.indexOf(\"零拾\") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(\"零拾\"), cMoneyStringBuffer.indexOf(\"零拾\") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf(\"零佰\") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(\"零佰\"), cMoneyStringBuffer.indexOf(\"零佰\") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf(\"零仟\") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(\"零仟\"), cMoneyStringBuffer.indexOf(\"零仟\") + 2, ZERO);
}
while (cMoneyStringBuffer.indexOf(\"零萬\") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(\"零萬\"), cMoneyStringBuffer.indexOf(\"零萬\") + 2, TEN_THOUSAND);
}
while (cMoneyStringBuffer.indexOf(\"零億\") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(\"零億\"), cMoneyStringBuffer.indexOf(\"零億\") + 2, HUNDRED_MILLION);
}
while (cMoneyStringBuffer.indexOf(\"零零\") != -1) {
cMoneyStringBuffer.replace(cMoneyStringBuffer.indexOf(\"零零\"), cMoneyStringBuffer.indexOf(\"零零\") + 2, ZERO);
}
if (cMoneyStringBuffer.lastIndexOf(ZERO) == cMoneyStringBuffer.length() - 1)
cMoneyStringBuffer.(cMoneyStringBuffer.length() - 1, cMoneyStringBuffer.length());
cMoneyStringBuffer.append(fractionpart);
result = cMoneyStringBuffer.toString();
return resu<
}
private String addUnitsToChineseMoneySt
String resu<
StringBuffer cMoneyStringBuffer = new StringBuffer(moneyStr);
int indexOfDot = cMoneyStringBuffer.indexOf(DOT);
cMoneyStringBuffer.replace(indexOfDot, indexOfDot + 1, YUAN);
2.
答:Server端程序: 【JavaEE面試問題(3)】相關文章: 面試經(jīng)典問題11-11 面試的經(jīng)典問題及答案03-16 面試經(jīng)典問題及答案06-20 關于面試的問題05-20 面試問題與回答11-27 銷售人員面試的經(jīng)典問題06-13 采購的面試問題06-14 面試問題及答案05-23 軍校面試問題06-30 奇葩面試問題03-29
package
import
import
public
{
InputStreamReader(socket.getInputStream()));