算法:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。

来源:互联网 发布:数据帧的长度计算公式 编辑:程序博客网 时间:2024/05/16 12:43

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。

    输入:    输入可能包含多个测试样例。    对于每个测试案例,输入为一个合法或者非法的字符串,代表一个整数n(1<= n<=10000000)。    输出:    对应每个测试案例,    若输入为一个合法的字符串(即代表一个整数),则输出这个整数。    若输入为一个非法的字符串,则输出“My God”。    样例输入:    5-5+8    样例输出:    5    -5    8
public class StrToIntDemo {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        System.out.println("输入字符:");        convert(scanner.next());    }    private static void convert(String str) {        if (str == null || "".equals(str.trim())) {            System.out.println("你输入的是空");            return;        }        char[] chars = str.toCharArray();        for (int i = 0; i < chars.length; i++) {            if (chars[i] == ' ') {                System.out.println("第" + (i + 1) + "个元素为null");                continue;            }            if (chars[i] == '+') {                System.out.println("第" + (i + 1) + "个元素为+");                continue;            }            if (i == chars.length - 1) {                systemOut(chars[i], i);                return;            }            if (chars[i] == '-' && check(chars[i + 1])) {                System.out.println(chars[i] + "" + chars[i + 1]);                i = i + 1;                continue;            }            systemOut(chars[i], i);        }    }    private static void systemOut(char aChar, int i) {        if (check(aChar)) {            System.out.println(aChar);        } else {            System.out.println("第" + (i + 1) + "个元素不合法");        }    }    static boolean check(char c) {        if (c >= '0' && c <= '9') {            return true;        }        return false;    }}
0 0
原创粉丝点击