输入数字,转换为汉字:
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(changeNumber(123003098));
}
public static String changeNumber(int number) {
StringBuffer buffer = new StringBuffer("");
char[] nums = Integer.valueOf(number).toString().toCharArray();
int length = nums.length;
if (length % 4 == 0) {
for (int i = 0; i < length / 4; i++) {
for (int j = 0; j < 4; j++) {
if (j == 3
&& Integer.valueOf(String.valueOf(nums[i * 4 + j])) == 0) {
break;
}
buffer.append(valueReturn(nums[i * 4 + j])
+ addReturn(j - 3));
}
buffer.append(addReturn(length / 4 - i - 1));
}
} else {
int over = length % 4;
for (int j = 0; j < over; j++) {
buffer.append(valueReturn(nums[j]) + addReturn(j - over + 1));
}
buffer.append(addReturn(length / 4));
for (int i = 0; i < length / 4; i++) {
for (int j = 0; j < 4; j++) {
if (j == 3
&& Integer.valueOf(String.valueOf(nums[i * 4 + j
+ over])) == 0) {
break;
}
buffer.append(valueReturn(nums[i * 4 + j + over])
+ addReturn(j - 3));
}
buffer.append(addReturn(length / 4 - i - 1));
}
}
return buffer.toString();
}
private static String addReturn(int info) {
String value = "";
switch (info) {
case -3:
value = "仟";
break;
case -2:
value = "佰";
break;
case -1:
value = "拾";
break;
case 0:
value = "";
break;
case 1:
value = "萬";
break;
case 2:
value = "亿";
break;
case 3:
value = "萬亿";
break;
case 4:
value = "亿亿";
break;
default:
break;
}
return value;
}
private static String valueReturn(char info) {
String value = "";
int select = Integer.valueOf(String.valueOf(info));
switch (select) {
case 0:
value = "零";
break;
case 1:
value = "壹";
break;
case 2:
value = "贰";
break;
case 3:
value = "叁";
break;
case 4:
value = "肆";
break;
case 5:
value = "伍";
break;
case 6:
value = "陆";
break;
case 7:
value = "柒";
break;
case 8:
value = "捌";
break;
case 9:
value = "氿";
break;
default:
break;
}
return value;
}
分享到:
相关推荐
### Java经典面试题知识点解析 #### 1. super()与this()的区别? - **super()**:用于调用父类的构造方法。在一个子类的构造方法中,如果要调用父类的构造方法,必须使用`super()`,并且这个调用语句必须放在子类...
- **知识点概述**:`char`类型可以存储Unicode编码的字符,包括中文汉字,因为Unicode编码字符集中包含了常见的汉字。每个`char`类型占用两个字节的空间。 ### 8. 最高效的乘法运算 - **知识点概述**:最高效的...
### 经典Python面试题详解 #### 1. 为什么学习Python? - **简洁易读**:Python语法简单明了,降低了学习门槛。 - **应用广泛**:可用于Web开发、数据分析、人工智能等多个领域。 - **社区活跃**:拥有庞大的...
84.8. 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七),请用java语言编一段程序实现! 114 84.9. 题目1:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有...
【C#面试题及答案】 在C#面试中,面试官常常会考察应聘者对C#基础知识的理解,包括面向对象编程、语法特性、类库使用等。以下是对一些常见C#面试题的详细解答: 1. `<%# %>` 和 `<% %>` 的区别: - `<%# %>` 是...
序列化是将对象的状态转换为可以存储或传输的形式的过程。通常用于以下场景: - 对象可以通过网络传输。 - 对象可以持久化到磁盘上。 - 序列化后的对象可以在不同的系统之间共享。 - 反序列化是序列化的逆过程,...
### Java综合面试题知识点解析 #### 一、super()与this()的区别? - **super()**:用于调用父类的构造方法。在一个子类的构造方法中,如果要调用父类的构造方法,必须使用`super()`,并且这个调用语句必须放在子类...
抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类...
- **垃圾收集**:自动释放不再使用的对象所占用的内存空间。 #### 1.8 什么是 JRE (或 J2RE)? **JRE (Java Runtime Environment)** 包括 JVM 和执行 Java 程序所需的基本类库。它是运行 Java 程序的基础环境,...
如果直接使用`+`运算符连接多个`char`变量,例如`System.out.print(a + b + c + d + e + f)`,实际上会触发隐式的类型转换,`char`变量会被转换为对应的Unicode编码(整数值),然后进行数字的加法运算,而非字符的...
9. 将数值型字符转换为数字,可以使用Integer.parseInt()或Character.getNumericValue()。四舍五入保留两位小数,可以使用DecimalFormat类或者BigDecimal类。 10. short s1 = 1; s1 = s1 + 1; 这个语句会隐式提升...
Java面试题涵盖了许多核心知识点,包括基础语法、内存管理、多线程、异常处理、类与对象、数据类型转换、字符串操作以及高级特性等。以下是对部分问题的详细解答: 1. `float f=3.4;` 不正确,因为3.4是一个double...
### 经典Python面试题知识点解析 #### 1. 为什么学习Python? - **易学性**: Python 的语法简洁明了,易于上手,适合初学者快速入门编程。 - **广泛应用**: 在数据科学、Web 开发、自动化脚本、网络爬虫等领域有着...
超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...