java數字轉換
❶ 用java把阿拉伯數字轉換成中文數字,怎麼做
有個簡單的轉換,支持10億以內
public class Test {
public static void test(int d) {
// String[] str = { "零", "壹", "貳", "叄", "肆", "伍", "陸", "柒", "捌", "玖" };
String[] str = { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
// String ss[] = new String[] { "元", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億" };
String ss[] = new String[] { "個", "十", "百", "千", "萬", "十", "百", "千", "億" };
String s = String.valueOf(d);
System.out.println(s);
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
String index = String.valueOf(s.charAt(i));
sb = sb.append(str[Integer.parseInt(index)]);
}
String sss = String.valueOf(sb);
int i = 0;
for (int j = sss.length(); j > 0; j--) {
sb = sb.insert(j, ss[i++]);
}
System.out.println(sb);
}
public static void main(String[] args) {
test(3213);
test(912321321);
}
}
結果
不想要「個」的話就把 ss[] 數組中的「個」改成空
不過畢竟是機械的轉換,有零的話不太符合語言習慣
❷ java中 將數字轉換成字元
方法一:直接強制轉換。如:String str= (String)123;
方法二:直接通過空字元串+數字的形式轉換為字元串(前後都可以用)。如:String str= ""+123;
方法三:直接通過包裝類來實現。如:String str = String.valueOf(1231);
❸ 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
輸出的是一十萬二萬三千四百五十六,也必須增加判斷。
❹ java 數字轉換成字元串
各種數字類型轉換成字元串型:
String
s
=
String.valueOf(
value);
//
其中
value
為任意一種數字類型。
字元串型轉換成各種數字類型:
String
s
=
"169";
byte
b
=
Byte.parseByte(
s
);
short
t
=
Short.parseShort(
s
);
int
i
=
Integer.parseInt(
s
);
long
l
=
Long.parseLong(
s
);
Float
f
=
Float.parseFloat(
s
);
Double
d
=
Double.parseDouble(
s
);
數字類型與數字類對象之間的轉換:
byte
b
=
169;
Byte
bo
=
new
Byte(
b
);
b
=
bo.byteValue();
short
t
=
169;
Short
to
=
new
Short(
t
);
t
=
to.shortValue();
int
i
=
169;
b
=
bo.byteValue();
short
t
=
169;
Short
to
=
new
Short(
t
);
t
=
to.shortValue();
int
i
=
169;
Integer
io
=
new
Integer(
i
);
i
=
io.intValue();
long
l
=
169;
Long
lo
=
new
Long(
l
);
l
=
lo.longValue();
float
f
=
169f;
Float
fo
=
new
Float(
f
);
f
=
fo.floatValue();
double
d
=
169f;
Double
dObj
=
new
Double(
d
);
d
=
dObj.doubleValue();
❺ java中如何將十進制數字轉化成二進制
如果表達小於2^31-1的正數代碼如下:
public void binaryToDecimal(int n){
int t = 0; //用來記錄位數
int bin = 0; //用來記錄最後的二進制數
int r = 0; //用來存儲余數
while(n != 0){
r = n % 2;
n = n / 2;
bin += r * Math().pow(10,t);
t++;
}
System.out.println(bin);
}
使用字元串的拼接(+)來實現大於2^31-1的數,代碼如下:
public void binaryToDecimal(int n){
String str = "";
while(n!=0){
str = n%2+str;
n = n/2;
}
System.out.println(str);
}
可以右移後再與0x01進行&運算得到第一位的數字判斷判斷它的第幾位上是0,第幾位上是1,代碼如下:
class ByteMove
{
public static void main(String[] args)
{
int i = 7;
move(i);
}
static void move(int num){
for(int i= 0;i<6;i++){
System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));
}
}
}
❻ java中int怎樣轉換成char
java將int類型的數字轉換成char型,主要是通過強制類型轉換,如下代碼:
public class Int2CharDemo { public static void main(String[] args) { // 將int類型數字8轉換為char類型數字8
int num1 = 8;
char ch1 = (char) (num1 + 48);
System.out.println("ch1 = " + ch1); // 將char類型數字8轉換為int類型數字8
// 方法一:
Character ch2 = '8'; // char是基本數據類型,Character是其包裝類型。
int num2 = Integer.parseInt(ch2.toString());
System.out.println("num2 = " + num2);
// 方法二:
char ch3 = '8';
int num3 = ch3 - 48;
System.out.println("num3 = " + num3); }
(6)java數字轉換擴展閱讀:
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類。
C語言中如int、long、short等不指定signed或unsigned時都默認為signed,但char在標准中不指定為signed或unsigned,編譯器可以編譯為帶符號的,也可以編譯為不帶符號的。
Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理。
Java還剔除了C++的操作符過載(overload)和多繼承特徵,並且不使用主文件,免去了預處理程序。因為Java沒有結構,數組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發上。
❼ java中,String字元串轉化為數字
java中,String字元串轉化為數字的方法有:
1、轉化為整型數字
(1)Integer.parseInt(String s) ,代碼示例如下:
public class Test {
public static void main(String args[]){
String s = "123";
int num = Integer.parseInt(str);
int sum = num + 100;
System.out.println("Result is: "+sum); // 輸出結果為:Result is: 223
}}
❽ java數字轉換
拿分來吧。。。不容易啊。,。。。多給點加分吧
package number;
import java.util.HashMap;
public class NumberFormat {
private static java.util.Map<String, String> SmallToBigMap = new HashMap<String, String>();
static {
SmallToBigMap.put(String.valueOf(0), "零");
SmallToBigMap.put(String.valueOf(1), "一");
SmallToBigMap.put(String.valueOf(2), "二");
SmallToBigMap.put(String.valueOf(3), "三");
SmallToBigMap.put(String.valueOf(4), "四");
SmallToBigMap.put(String.valueOf(5), "五");
SmallToBigMap.put(String.valueOf(6), "六");
SmallToBigMap.put(String.valueOf(7), "七");
SmallToBigMap.put(String.valueOf(8), "八");
SmallToBigMap.put(String.valueOf(9), "九");
SmallToBigMap.put(String.valueOf(10), "十");
SmallToBigMap.put(String.valueOf(100), "百");
SmallToBigMap.put(String.valueOf(1000), "千");
SmallToBigMap.put(String.valueOf(10000), "萬");
SmallToBigMap.put(String.valueOf(100000000), "億");
}
public static String format(String num) {
// 先將末尾的零去掉
String numString = String.valueOf(num).replaceAll(".[0]+$", "");
// 分別獲取整數部分和小數部分的數字
String intValue;
String decValue = "";
if (numString.indexOf(".") != -1) {
intValue = String.valueOf(num).split("\\.")[0];
decValue = String.valueOf(num).split("\\.")[1];
} else {
intValue = String.valueOf(num);
}
// 翻譯整數部分。
intValue = formatInteger(Integer.parseInt(String.valueOf(intValue)));
// 翻譯小數部分
decValue = formatDecnum(decValue);
String resultString = intValue;
if(!decValue.equals(""))
resultString = resultString + "點" + decValue;
return resultString;
}
/**
* 將阿拉伯整數數字翻譯為漢語小寫數字。 其核心思想是按照中文的讀法,從後往前每四個數字為一組。每一組最後要加上對應的單位,分別為萬、億等。
* 每一組中從後往前每個數字後面加上對應的單位,分別為個十百千。 每一組中如果出現零千、零百、零十的情況下去掉單位。
* 每組中若出現多個連續的零,則通讀為一個零。 若每一組中若零位於開始或結尾的位置,則不讀。
*
* @param num
* @return
*/
public static String formatInteger(int num) {
int unit = 10000;
int perUnit = 10000;
String sb = new String();
String unitHeadString = "";
while(num > 0){
int temp = num % perUnit;
sb = formatIntegerLess10000(temp) + sb;
// 判斷是否以單位表示為字元串首位,如果是,則去掉,替換為零
if(!unitHeadString.equals(""))
sb = sb.replaceAll("^" + unitHeadString, "零");
num = num / perUnit;
if(num > 0)
{
// 如果大於當前單位,則追加對應的單位
unitHeadString = SmallToBigMap.get(String.valueOf(unit));
sb = unitHeadString + sb;
}
unit = unit * perUnit;
}
return sb;
}
/**
* 將小於一萬的整數轉換為中文漢語小寫
*
* @param num
* @return
*/
public static String formatIntegerLess10000(int num) {
StringBuffer sb = new StringBuffer();
for (int unit = 1000; unit > 0; unit = unit / 10) {
int _num = num / unit;
// 追加數字翻譯
sb.append(SmallToBigMap.get(String.valueOf(_num)));
if (unit > 1 && _num > 0)
sb.append(SmallToBigMap.get(String.valueOf(unit)));
num = num % unit;
}
// System.out.println(sb.toString().replaceAll("[零]+",
// "零").replaceAll("^零", "").replaceAll("零$", ""));
// 先將連續的零聯合為一個零,再去掉頭部和末尾的零
return sb.toString().replaceAll("[零]+", "零").replaceAll("^零", "")
.replaceAll("零$", "");
}
public static String formatDecnum(String num){
StringBuffer sBuffer = new StringBuffer();
char[] chars = num.toCharArray();
for(int i = 0; i < num.length(); i ++){
sBuffer.append(SmallToBigMap.get(String.valueOf(chars[i])));
}
return sBuffer.toString();
}
public static void main(String[] args) {
// NumberFormat.formatInteger(1000);
System.out.println(NumberFormat.format("123.123"));
System.out.println(NumberFormat.format("101"));
System.out.println(NumberFormat.format("1001"));
System.out.println(NumberFormat.format("10100"));
System.out.println(NumberFormat.format("1000000001.123"));
}
}
❾ java中怎麼將數字轉換成字元串
toString()方法轉換成字元串。