PAT团队程序设计天梯赛-习题集L1-007 念数字

题目链接


题目分析

将念数字作为一个单独的方法,能够接收从键盘读入的数字。我们可以定义一个字符串数组,里面的元素是从零到九的拼音。然后我们将读入的这个数字转换成一个字符串,并且依次取出每一个字符,利用ASCII码的性质给它减去零这个字符就可以得到数字本身,而这个数字作为下标的话,刚好对应素组里的拼音。然后打印就可以了。
首先需要从键盘读入要读的数字。然后判断一下是不是负数,正数直接调用读数字的方法,负数需要单独打印一个"fu ",然后调用读数字的方法,参数是他的绝对值。

示例代码

 
 
import java.util.Scanner;
public class L1_007 {
	public static void main(String[] args) {
		//读入一个数字
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();
		input.close();
		//判断是否是负数,并控制打印形式
		if(num < 0) {
			System.out.print("fu" + " ");
			//负数要找到绝对值去读
			int num_abs = Math.abs(num);
			read(num_abs);
		}
		else {
			read(num);
		}
	}
	/**
	* @Title: read 
	* @Description: 读数字 
	* @param @param n    设定文件 
	* @return void    返回类型 
	* @throws
	 */
	public static void read(int n) {
		//定义一个字符串数组,元素是从零到九的数字的拼音
		String[] arr = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
		int number = n;
		//将数字转换为字符串
		String str = number +"";
		//定义最终要打印的字符串
		String print = "";
		//遍历字符串
		for(int index = 0; index < str.length(); index++) {
			//从左往右取到每一个字符
			char c = str.charAt(index);
			//用取到的字符减字符零,得到的 int 型数字就是数字本身
			//用数字本身作为下标获取拼音
			int arr_index = c - '0';
			//concat(String s) 方法,把指定的字符串连接到这个字符串的末尾
			print = print.concat(arr[arr_index] + " ");
		}
		//trim() 方法,去掉字符串末尾的空格字符
		System.out.println(print.trim());
	}
}


猜你喜欢

转载自blog.csdn.net/qq_38234015/article/details/80283303