急求用JAVA语言来做这道题,跪求好心人。

输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。 如输入:56439,输出:5位数 5,6,4,3,9 9,3,4,6,5

import java.util.Scanner;
public class Test007 {
 public static void main(String[] args) {
  
  Scanner sc = new Scanner(System.in);
  while(true){
   
   System.out.println("请输入输入一个五位以内的正整数:");
   String num = sc.nextLine();
   
   if(num.matches("^\\d+$")){ //判断是否为数字
    
    
    num = String.valueOf(Integer.parseInt(num)); //防止以0开头
    
    if(num.length() < 1 || num.length() > 4){
     
     System.out.println("输入位数不合法!请重新输入..");
     continue;
    }
    
    System.out.println("该数字是" + num.length() + "位数");
    
    char[] cr = num.toCharArray();
    
    for(char c : cr){  //顺序输出
     System.out.print(c + "、");
    }
    
    for(int i = (cr.length-1) ; i >= 0 ; i--){ //逆序输出
     System.out.print(cr[i] + "、");
    }
    
    break;
    
   }else{
    System.out.println("您的输入不合法..");
   }
  }
  
 }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-04
public class Numbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine().trim();
System.out.println("长度:" + line.length() + " 位数");
System.out.print("按序输出其各位数字:");
char[] chr = line.toCharArray();
for (int i = 0; i < chr.length; i++) {
System.out.print(chr[i] + ",");
}
System.out.print("\r\n逆序输出其各位数字:");
for (int i = chr.length - 1; i >= 0; i--) {
System.out.print(chr[i] + ",");
}
}
}

输出结果:

56439
长度:5 位数
按序输出其各位数字:5,6,4,3,9,
逆序输出其各位数字:9,3,4,6,5,

第2个回答  2013-07-04
package com.java.util;

import java.util.Scanner;
/**
* 不足之处 未判断是否是数字,未判断字符串长度
* @author ecp
* hyz4566758的回答考虑的很全面了。
*/
public class Ac {

    public static void main(String[] args) {
        System.out.println("输入一个五位以内的正整数:"); //提示用户输入数字
        Scanner input = new Scanner(System.in); //new一个Scanner
        String str = input.next(); //把输入的字符串赋值给str
        System.out.print(str.length()+"位数");//输入字符串长度
        for(int i = 0 ;i<str.length();i++){ //循环 从0-字符串的长度
            System.out.print(str.charAt(i)+","); //打印每一个字符
        }
        for(int i = str.length()-1 ;i>=0;i--){ 
            System.out.print(str.charAt(i)+",");
        }

    }

}

第3个回答  2013-07-04
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");

String inStr = null;

while(true){
//接受输入的信息
inStr = scanner.nextLine();
try {

//把接受的信息,转换成数字
Integer num = Integer.parseInt(inStr);
//把数字转换成字符串(比如输入的0002),通过转成数字在变成字符串就变成(2)了
inStr = num.toString();
System.out.println(inStr.length()+"位数");

String orderStr = "";
String inorderStr = "";

for(int i=0;i<inStr.length();i++){

orderStr += "\t"+inStr.charAt(i);
inorderStr += "\t"+inStr.charAt(inStr.length()-i-1);

}
System.out.println("正序:"+orderStr);
System.out.println("倒序:"+inorderStr);
break;
} catch (Exception e) {
System.out.println("不是整数,请输入一个整数:");
}
}
}
第4个回答  2013-07-04
// 输出一个字符串的长度,数字一样
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数字:");
String a = scanner.next().trim();
int b = a.length();
System.out.println("该数字为"+b+"位数");
// 循环输出每个数
System.out.print("顺序输出为:");
for(int i=0; i<a.length();i++){
System.out.print(a.charAt(i)+ " , ");
}
// 逆序 也就是翻转数字
System.out.print("翻转后:");
for (int i = a.length()-1; i >= 0; i--) {
System.out.print(a.charAt(i)+" , ");
}
相似回答
大家正在搜