zoukankan      html  css  js  c++  java
  • 49.字符串转int

    image

    image

    面360的时候这道题目加了一个要求就是要求小数输出整数,故增加一个关于小数点的判断

    要注意转义字符:“.”和“|”都是转义字符,必须得加"\"。同理:*和+也是如此的。
    如果用“.”作为分隔的话,必须是如下写法:
    String.split("\."),这样才能正确的分隔开,不能用String.split(".");
    如果用“|”作为分隔的话,必须是如下写法:
    String.split("\|"),这样才能正确的分隔开,不能用String.split("|");

    public class Solution49 {
        public static void main(String[] args) {
            String str = "-12345.8";
            System.out.println(StrToInt(str));
        }
        
        public static int StrToInt(String str) {
            //1.字符串为空
            if (str.trim().length()==0||str == null) {
                return 0;
            }
            //2.判断是否为负数
            int flag = 1;
            if (str.charAt(0)=='-') {
                flag = -1;
            }
            //4.如果遇到小数点
            if (str.contains(".")) {
                if (str.indexOf(".")!=str.lastIndexOf(".")) {
                    return 0 ;
                }
                String[] split = str.split("\.");
                str = split[0];
            }
            //3.开始循环遍历这个字符串
            int res = 0;
            for (int i = 0; i < str.length(); i++) {
                char everyWord = str.charAt(i);
                //符号位
                if (i==0 && (everyWord=='+'||everyWord=='-')) {
                    continue;
                }
                //非法输入
                if (everyWord<'0'||everyWord>'9') {
                    return 0;
                }
                //合法输入,取出一位,如果后面还有数字就左移(*10)
                res = res*10 + everyWord-'0';
            }
            return (res*flag);
        }
    }
  • 相关阅读:
    angularjs MVC、模块化、依赖注入详解
    SpringBoot2.0整合Redission
    SpringBoot2.0整合SpringSecurity实现自定义表单登录
    SpringBoot2.0整合SpringSecurity实现WEB JWT认证
    基于Redis实现消息队列的几种方式
    函数初识
    noip200204过河卒
    邮票问题
    noip200205均分纸牌
    废品回收
  • 原文地址:https://www.cnblogs.com/yuange678/p/10689796.html
Copyright © 2011-2022 走看看