⑴ java程序 輸入一串數字如12341289.23,輸出萬千百十元角分。高手幫忙!謝謝
//將人民幣金額轉換為大寫
function upDigit(n){
var fraction = ["角","分"];
var digit = ["零","壹","貳","叄","肆","伍","陸","柒","捌","玖"];
var unit = [["元","萬","億"],["","拾","佰","仟"]];
var head = n<0?"負":"";
n = Math.abs(n);
var s = "";
for(var i=0; i<fraction.length; i++){
s += (digit[Math.floor(n*10*Math.pow(10,i))%10]+fraction[i]).replace(/零./,"");
}
s = s||"整";
n = Math.floor(n);
for(var i=0; i<unit[0].length && n>0; i++){
var p = "";
for(var j=0; j<unit[1].length && n>0; j++){
p = digit[n%10] + unit[1][j]+p;
n = Math.floor(n/10);
}
s = p.replace(/(零.)*零$/,"").replace(/^$/,"零") + unit[0][i] + s;
}
return head + s.replace(/(零.)*零元/,"元").replace(/(零.)+/g,"零").replace(/(^整$)/,"零元整");
}
⑵ java循環例題:100元找零錢,零錢1,2,5元,問共有多少種分法。
在Java中,要解決100元找零錢的問題,可以使用嵌套循環來枚舉所有可能的找零組合。以下是一個改進和潤色後的代碼示例,它清晰地展示了如何計算使用1元、2元和5元硬幣找零的所有可能方式。
```java
public static void splitMoney(int total) {
int count = 0; // 用於計數不同找零方式的數量
// 外層循環控制5元硬幣的數量
for (int five = 0; five <= total; five += 5) {
// 次外層循環控制2元硬幣的數量
for (int two = 0; two <= total - five; two += 2) {
// 內層循環控制1元硬幣的數量
for (int one = 0; one <= total - five - two; one += 1) {
// 檢查當前的硬幣組合是否有效
if (five >= 0 && two >= 0 && one >= 0 && (total - (five + two + one)) >= 0) {
// 輸出當前的找零組合
System.out.printf("%d元=%d個5元 +%d個2元 +%d個1元 +%d個0.1元\n",
total, five / 5, two / 2, one / 1, total - (five + two + one));
count++; // 有效組合,計數器加一
}
}
}
}
// 輸出總的找零組合數量
System.out.println("\n總共有" + count + "種找零方法。");
}
// 調用函數
splitMoney(100);
```
這段代碼首先初始化一個計數器來追蹤不同的找零方法。然後,它使用三個嵌套的`for`循環來遍歷所有可能的5元、2元和1元硬幣的數量。每次循環都會檢查當前的硬幣組合是否滿足總金額的要求。如果組合有效,它會輸出具體的找零方式,並且更新計數器。最後,函數會輸出總共找到的找零方法數量。
注意,在原代碼中有一些邏輯錯誤,例如`b=b+5`、`c=c+2`和`d=d+1`的增量應該在循環條件中進行檢查,以確保硬幣的數量不會超過所需的總數。此外,還修正了輸出格式,使其更加清晰易讀。
⑶ JAVA如何把鍵盤輸入的金額換轉成中文顯示。在線求解釋~~~
/**
*將10億以內的阿拉伯數字轉成漢字大寫形式
*@authorHp
*
*/
publicclassTestNum{
//整數部分
privateStringintegerPart;
//小數部分
privateStringfloatPart;
//將數字轉化為漢字的數組,因為各個實例都要使用所以設為靜態
privatestaticfinalchar[]cnNumbers={'零','壹','貳','叄','肆','伍','陸','柒','捌','玖'};
//供分級轉化的數組,因為各個實例都要使用所以設為靜態
privatestaticfinalchar[]series={'元','拾','百','仟','萬','拾','百','仟','億'};
/**
*構造函數,通過它將阿拉伯數字形式的字元串傳入
*@paramoriginal
*/
publicTestNum(Stringoriginal){
//成員變數初始化
integerPart="";
floatPart="";
if(original.contains(".")){
//如果包含小數點
intdotIndex=original.indexOf(".");
integerPart=original.substring(0,dotIndex);
floatPart=original.substring(dotIndex+1);
}
else{
//不包含小數點
integerPart=original;
}
}
/**
*取得大寫形式的字元串
*@return
*/
publicStringgetCnString(){
//因為是累加所以用StringBuffer
StringBuffersb=newStringBuffer();
//整數部分處理
for(inti=0;i<integerPart.length();i++){
intnumber=getNumber(integerPart.charAt(i));
sb.append(cnNumbers[number]);
sb.append(series[integerPart.length()-1-i]);
}
//小數部分處理
if(floatPart.length()>0){
sb.append("點");
for(inti=0;i<floatPart.length();i++){
intnumber=getNumber(floatPart.charAt(i));
sb.append(cnNumbers[number]);
}
}
//返回拼接好的字元串
returnsb.toString();
}
/**
*將字元形式的數字轉化為整形數字
*因為所有實例都要用到所以用靜態修飾
*@paramc
*@return
*/
privatestaticintgetNumber(charc){
Stringstr=String.valueOf(c);
returnInteger.parseInt(str);
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
System.out.println(newTestNum("123456789.12345").getCnString());
System.out.println(newTestNum("123456789").getCnString());
System.out.println(newTestNum(".123456789").getCnString());
System.out.println(newTestNum("0.1234").getCnString());
System.out.println(newTestNum("1").getCnString());
System.out.println(newTestNum("12").getCnString());
System.out.println(newTestNum("123").getCnString());
System.out.println(newTestNum("1234").getCnString());
System.out.println(newTestNum("12345").getCnString());
System.out.println(newTestNum("123456").getCnString());
System.out.println(newTestNum("1234567").getCnString());
System.out.println(newTestNum("12345678").getCnString());
System.out.println(newTestNum("123456789").getCnString());
}
}
⑷ 用Java一個簡單的畫圖程序
簡單啊,先引入相應的組件包import java.awt.*;import java.awt.event.*;import javax.swing.*;寫的類要繼承JFrame 接下來就是調用剛剛引入包版裡面的方法了,權paint();這是就思路了。