㈠ java編程 數字轉換成漢字
我自己寫的,匆忙寫的。我有時間再改進改進。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Stack;
/*
* 本程序
*/
public class Transfer {
public Stack<Integer> transfer(int n){
Stack<Integer> st = new Stack<Integer>();
int division = 0; //余數
while(n>=10){
division = n%10;
st.push(division);
n = n/10;
}
st.push(n); //將最高位壓棧
return st;
}
public static void main(String[]args){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String in = "";
try {
in = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
int n = 0;
try{
n = Integer.parseInt(in);
} catch(NumberFormatException e){
e.printStackTrace();
}
Transfer tf = new Transfer();
Stack<Integer> s = tf.transfer(n);
/*
while(!s.empty()){
System.out.print(s.pop()); //測試語句
}
*/
HashMap<Integer, String> hp1 = new HashMap<Integer, String>(); //第一個映射表
hp1.put(0, "零"); //根據所在位的數值與中文對應
hp1.put(1, "一");
hp1.put(2, "二");
hp1.put(3, "三");
hp1.put(4, "四");
hp1.put(5, "五");
hp1.put(6, "六");
hp1.put(7, "七");
hp1.put(8, "八");
hp1.put(9, "九");
HashMap<Integer, String> hp2 = new HashMap<Integer, String>(); //第二個映射表
hp2.put(2, "十"); //根據所在位數,與中文對應
hp2.put(3, "百");
hp2.put(4, "千");
hp2.put(5, "萬");
hp2.put(6, "十萬");
hp2.put(7, "百萬");
hp2.put(8, "千萬");
hp2.put(9, "億");
//System.out.println(s.size());
String out = "";
while(!s.isEmpty()){
int temp = s.pop();
if(s.size()==0){
if(temp !=0){
out = out + hp1.get(temp);
}
}
else{
if(temp==0){
out = out + hp1.get(temp);
}
else{
out = out + hp1.get(temp) + hp2.get(s.size()+1);
}
}
}
System.out.println(out);
}
}
對於如2008之類的數,輸出的是二千零零八,還需要加以判斷,我再去處理下。
還有涉及萬以上的數,比如
123456
輸出的是一十萬二萬三千四百五十六,也必須增加判斷。
㈡ 編程時怎樣把計算機裡面的0和1編寫成文字.
把計算機中的0、1變成文字是用計算機裡面的字型檔完成的,要讓計算機認識並顯示字元首先需要解決的是如何讓計算機認識。在計算機裡面都有相對的字型檔。如現在比較流行的是ASCII碼,象一個字元A在計算機中可以給它一個編碼如000000001一個字母佔一個位元組,當你按鍵後計算機在字型檔中找,找到後就顯示相關的字元。顯示是通過點陣來顯示的。漢字有點麻煩,不過方法和字母的大概相同,也是通過字型檔來解決的,將用到的漢字編號,然後顯示。不同的是漢字多而字母少,一個漢字的編碼是占兩個位元組,如「我」的編碼就可以是00000000 00000001。當然編碼不一定就是這個了,舉個例子嘛。
學習編程,你可以從Basic入手,也可以從 C語言入手。甚至直接從Java入手都可以。但需要注意的是,在學習編程的時候千萬不要眼高手底,從最基礎開始。同時要學習相關的數據結構。然後就可以找些題目來作,你可以先從數據結構裡面的題目入手。如100的階乘、鏈表的操作、二叉樹的遍歷等問題等。完成了以上問題後基本上對編程就有了概念,這時候在開始學習一些可視化編程工具,如VB、VC等,你可以參照別人已經編寫好的程序開始學習一些如俄羅斯方塊、連連看等游戲了,等你到這個地步後就要看你個人的發展了。可以向演算法設計、資料庫編程、網路編程等方向。然後就要看你的努力程度和天賦了。。總之一口吃不成胖子,先從基礎開始。如果真想學就早點開始,一步一步的來,千萬不要亂聽別人說這好那好。今天看看VB明天看看Delphi。記住編程一定是從順序、循環、條件三種語句開始的。
㈢ 編程中,如何將拼音轉換成文字
在ios開發中經常碰到做通訊錄需要將漢字轉成拼音的情況,以下就是我把漢字轉成拼音的方法。
把代碼給你貼出來!
+ (NSString *)transform:(NSString *)chinese
{
NSMutableString *pinyin = [chinese mutableCopy];
CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, , NO);
CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, , NO);
NSLog(@"%@", pinyin);
return [pinyin uppercaseString];
}