当前位置:首页 » 编程语言 » java数字转换

java数字转换

发布时间: 2022-07-10 13:27:53

❶ 用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()方法转换成字符串。

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:432
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:743
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:146
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:235
java驼峰 发布:2025-02-02 09:13:26 浏览:651
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:538
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726