日期:2014-05-20  浏览次数:20934 次

新手 求一段代码???
1.些一段代码,要求输入正整数,在输入的时候要对输入的数字,
进行判断(是正整数执行程序,不是正整数重新输入)。
程序中要求对输入的数字加一后输出。
比如:输入1, 输出2
  输入:2 输出:3
  输入:1.6 输出:你输入的不是正整数,请重新输入。
  输入:‘s’或者 “张三” 输出:你输入的不是数字,请重新输入。

------解决方案--------------------
Java code

import java.util.*;

public class Test {

    
    public static void main(String[] args) {
        
        int k = 0;
        String str = "";
        boolean flag = false;
        Scanner s = new Scanner(System.in);
        while (true) {
            str = s.next();
            for (int i = str.length(); --i >= 0;) {
                if (!Character.isDigit(str.charAt(i))) {
                    flag = false;
                } else {
                    flag = true;
                }

            }
            if (flag) {
                k = Integer.parseInt(str);

                if (k > 0) {
                    System.out.print(k + 1);
                }

            } else {
                System.out.print("你输入的不是数字,请重新输入");
            }
        }
    }

}

------解决方案--------------------
借用楼上的代码
Java code

import java.util.*;

public class Test {

    
    public static void main(String[] args) {
        String str = "";
        boolean flag = false;
        Scanner s = new Scanner(System.in);
        while (true) {
            str = s.next();
            if("exit".equals(str))
            {break;}
            try{
            int  k = Integer.parseInt(str);
            if(k > 0)
             {
                System.out.println("你输入的数加上1后值为:"+(++k));
            }else{ 
                  System.out.println("你输入的不是正整数,请重新输入");
             }
           }catch(Exception e){
             System.out.println("你输入的不是整数,请重新输入");
           }
        }
    }

}

------解决方案--------------------
Java code


import java.util.Scanner;

public class Test {

    final static String EXIT = "exit";
    
    public static void main(String[] args) {
        fun();
    }

    static void fun() {
        Scanner s = new Scanner(System.in);
        String str = null;
        while (true) {
            str = s.next();
            int index = str.length();
            if(str.equals(EXIT))
                return;
            while (index-- > 0) {
                if (!Character.isDigit(str.charAt(index))) {
                    System.out.println("你输入的不是正整数,请重新输入");
                    break;
                }
            }
            if(index < 0)
                System.out.println(Integer.parseInt(str) + 1);
        }        
    }
}

------解决方案--------------------
加上了对0的判断和超长字符串的处理
Java code

import java.math.BigInteger;
import java.util.Scanner;

public class Test {

    final static String EXIT_MSG = "exit";
    final static String ERROR_MSG = "你输入的不是正整数,请重新输入";
    final static String ADD_NUM = "1";
    
    public static void main(String[] args) {
        fun();
    }

    static void fun() {
        Scanner s = new Scanner(System.in);
        String str = null;
        while (true) {
            str = s.next();
            int index = str.length();
            if(str.equals(EXIT_MSG))
                return;
            while (index-- > 0) {
                if (!Character.isDigit(str.charAt(index))) {
                    System.out.println(ERROR_MSG);
                    break;
                }
            }
            if(index < 0){
                BigInteger num = new BigInteger(str);
                System.out.println(!num.toString().equals("0") ? num.add(new BigInteger(ADD_NUM)).toString(): ERROR_MSG);
            }
        }        
    }
}