实现将String类型转换成int类型输出

来源:互联网 发布:mac 在线重装系统 编辑:程序博客网 时间:2024/04/30 05:58

题目:编写一个函数将String 类型的数据转换成int类型的数据。

分析:
(1)考虑输入的合法性
(2)考虑正负
(3)考虑溢出
(4)考虑返回值
代码:

/** * 题目:编写一个函数将String 类型的数据转换成int类型的数据 */package problem2;/** * @author Hutongling * * @time:2017年3月31日 下午2:12:42 */public class StringToInteger {    /*     * 分析: (1)考虑输入的合法性 (2)考虑正负 (3)考虑溢出 (4)考虑返回值     */    static void stringToInt(String s) {        if (s == null) {            System.out.println("非法输入,请输入正确的字符串");            return;        } else {            char first = s.charAt(0);            int sum = 0;            long sum1 = 0;            if (first >= '0' && first <= '9') {                for (int i = 0; i < s.length(); i++) {                    if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {                        sum1 = sum1 * 10 + (s.charAt(i) - '0');                        if (sum1 <= Integer.MAX_VALUE) {                            sum = (int) sum1;                            if (i == s.length() - 1)                                System.out.println(s + "转换成整数类型为:" + sum);                        } else {                            System.out.println("输入的字符串过长,产生了溢出");                            return;                        }                    } else {                        System.out.println("输入非法");                        break;                    }                }            } else if (first == '+' || first == '-') {                sum = 0;                for (int i = 1; i < s.length(); i++) {                    if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {                        sum1 = sum1 * 10 + (s.charAt(i) - '0');                        if (sum1 <= Integer.MAX_VALUE) {                            sum = (int) sum1;                            if (i == s.length() - 1)                                System.out.println(s + "转换成整数类型为:" + (first == '-' ? -sum : sum));                        } else {                            System.out.println("输入的字符串过长,产生了溢出");                            return;                        }                    } else {                        System.out.println("输入非法");                        break;                    }                }            }        }    }    public static void main(String[] args) {        String aString="1254000000";        stringToInt(aString);        String bString="-1254000000";        stringToInt(bString);        String cString="-000000";        stringToInt(cString);        String dString="+000000";        stringToInt(dString);    }}

代码结果:
1254000000转换成整数类型为:1254000000
-1254000000转换成整数类型为:-1254000000
-000000转换成整数类型为:0
+000000转换成整数类型为:0

0 0
原创粉丝点击