Java数字处理

给出一个不多于5位的正整数,要求如下:

(1)求出该数是几位数。

(2)分别打印出每一位数字。

(3)按照逆序打印出各位数值。

 

按照以上要求,首先得用户从键盘输入一个不多于5位的正整数,可以用System.out.println()在控制台输出数据以提示用户:System.out.println("请输入一个不多于5位数的正整数:");

    Java在涉及到输入时比较谨慎,因为它要求进行异常处理,也就是涉及输入的代码得用try括起来。获取从键盘输入的东西有一个比较固定的方法:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String example1= br.readLine();显然这个example1里面存储的就是用户从键盘输入的内容了。

第一个要求是求出该数是几位数,这好办,Java有现成的length()方法可以调用,前提是调用这个方法的对象得是String类型,example1正好满足,即int length=example1.length();之后,这个length就是该数的位数了。

    分别打印出每一位数字,凡涉及到“每”、“各”之类的,基本上都要用到循环。譬如说此处,因为已经得到了该数的位数也就是循环的次数length,就可以用for,即for (int i = 0; i <= length-1; i++) {输出第i位数字;}Java提供的charAt()方法用来获取字符串某一位的字符,即example1.charAt(i)就是下标为i的字符,辣么要输出该位就是System.out.println(example1.charAt(i));因为下标都是从0开始的,所以这里顺序时下标的起始分别是0length-1

第三个要求和第二个要求大同小异,唯一的区别是要求(2)输出时下标是从0length-1,要求(3)输出时下表是从length-10,即 for (int i = length - 1; i >= 0; i--)

 

完整代码如下:

import java.io.*;
public class Practice2 {
	public static void main(String[] args) {
		System.out.println("请输入一个不多于5位数的正整数:");
		try
		{
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			String example1= br.readLine();
			int length=example1.length();
			System.out.println("该数是"+length+"位数");
			System.out.println("它的各位数分别为:");
	        for (int i = 0; i < length; i++) {
	           System.out.println(example1.charAt(i));
	        }
	        System.out.println("它的各位数逆序分别为:");
	        for (int i = length - 1; i >= 0; i--) {
	            System.out.print(example1.charAt(i) + " ");
	        }        
		}
		catch(Exception e)
		{
			
		}		
	}
}

     效果如图:

 

posted @ 2013-09-28 23:46  源子陌  Views(785)  Comments(0Edit  收藏  举报