当前位置: 代码迷 >> J2SE >> 新手 求一段代码?解决方案
  详细解决方案

新手 求一段代码?解决方案

热度:98   发布时间:2016-04-24 02:14:05.0
新手 求一段代码???
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);            }        }            }}
  相关解决方案