zoukankan      html  css  js  c++  java
  • 不使用java内置函数,将String字符串转换为int类型

    package com.test;
    
    public class AtoiTest {
      public static void main(String[] args) throws Exception {
        String s = "-011134";
        System.out.println("转换前的字符串:" + s);
        System.out.println("atoi1转换后的字符串:" + atoi1(s));
        System.out.println("atoi2转换后的字符串:" + atoi2(s));
    
      }
    
      /**
       * 不用java内置函数,将String字符串转换为数字
       * @param s
       * @return
       * @throws Exception 
       */
      public static int atoi1(String s) throws Exception {
        if (s == null || s.length() == 0) {
          throw new Exception("要转换的字符串为空,无法转换!");
        }
        int retInt = 0;
        int[] num = new int[s.length()];
        for (int i = 0; i < s.length(); i++) {
          char c = s.charAt(i);
          switch (c) {
          case '-':
            num[i] = -1;
            break;
          case '0':
            num[i] = 0;
            break;
          case '1':
            num[i] = 1;
            break;
          case '2':
            num[i] = 2;
            break;
          case '3':
            num[i] = 3;
            break;
          case '4':
            num[i] = 4;
            break;
          case '5':
            num[i] = 5;
            break;
          case '6':
            num[i] = 6;
            break;
          case '7':
            num[i] = 7;
            break;
          case '8':
            num[i] = 8;
            break;
          case '9':
            num[i] = 9;
            break;
          default:
            throw new Exception("要转换的字符串格式错误,无法转换!");
          }
        }
        for (int i = 0; i < num.length; i++) {
          if (num[i] < 0 && i > 0) {
            throw new Exception("要转换的字符串格式错误,无法转换!");
          }
          if (num[i] < 0) {
            continue;
          }
          retInt += Math.pow(10, num.length - i - 1) * num[i];
        }
        if (num[0] == -1) {//代表负数
          retInt = -retInt;
        }
        return retInt;
      }
      /**
       * 不用java内置函数,将String字符串转换为数字
       * @param s
       * @return
       * @throws Exception
       */
      public static int atoi2(String s) throws Exception{
        int retInt = 0;
        if (s == null || s.length() == 0) {
          throw new Exception("要转换的字符串为空,无法转换!");
        }
        boolean isNegative = false;
        for (int i = 0; i < s.length(); i++) {
          if (i==0) {
            if(s.charAt(i)=='-'){
              isNegative = true;
              continue;
            }
          }else{
            if(s.charAt(i)>'9' || s.charAt(i)<'0'){
              throw new Exception("要转换的字符串格式错误,无法转换!");
            }
          }
          retInt *=10;
          retInt += s.charAt(i) - '0';
        }
        return isNegative ? -retInt : retInt;
      }
    }
  • 相关阅读:
    NET微信公众号开发环境搭建(一)-了解微信由来
    JS:复制内容到剪贴板(无插件,兼容所有浏览器)
    js 压缩上传的图片方法(默认上传的是file文件)
    vue封装组件调用时绑定click事件
    vue cli3 区分开发环境,测试环境,正式环境(二)
    vue 动态修改网页标题 title
    vue移动端适配(px转vw)postcss-px-to-viewport配置
    veu创建项目,自定义配置
    vue cli3配置开发环境、测试环境、生产(线上)环境(一)
    vue封装axios
  • 原文地址:https://www.cnblogs.com/wdpnodecodes/p/7455445.html
Copyright © 2011-2022 走看看