文档章节

将字符串转化为整数

pczhangtl
 pczhangtl
发布于 2014/08/31 10:09
字数 212
阅读 10
收藏 0

这个函数是直接从Java src拿过来的。

public static int parseInt(String s, int radix)
			throws NumberFormatException {
		/*
		 * WARNING: This method may be invoked early during VM initialization
		 * before IntegerCache is initialized. Care must be taken to not use the
		 * valueOf method.
		 */

		if (s == null) {
			throw new NumberFormatException("null");
		}

		if (radix < Character.MIN_RADIX) {
			throw new NumberFormatException("radix " + radix
					+ " less than Character.MIN_RADIX");
		}

		if (radix > Character.MAX_RADIX) {
			throw new NumberFormatException("radix " + radix
					+ " greater than Character.MAX_RADIX");
		}

		int result = 0;
		boolean negative = false;
		int i = 0, len = s.length();
		int limit = -Integer.MAX_VALUE;
		int multmin;
		int digit;

		if (len > 0) {
			char firstChar = s.charAt(0);
			if (firstChar < '0') { // Possible leading "+" or "-"
				if (firstChar == '-') {
					negative = true;
					limit = Integer.MIN_VALUE;
				} else if (firstChar != '+')
					throw new NumberFormatException("For input string: \"" + s + "\"");

				if (len == 1) // Cannot have lone "+" or "-"
					throw new NumberFormatException("For input string: \"" + s + "\"");
				i++;
			}
			multmin = limit / radix;
			while (i < len) {
				// Accumulating negatively avoids surprises near MAX_VALUE
				digit = Character.digit(s.charAt(i++), radix);
				if (digit < 0) {
					throw new NumberFormatException("For input string: \"" + s + "\"");
				}
				if (result < multmin) {
					throw new NumberFormatException("For input string: \"" + s + "\"");
				}
				result *= radix;
				if (result < limit + digit) {
					throw new NumberFormatException("For input string: \"" + s + "\"");
				}
				result -= digit;
			}
		} else {
			throw new NumberFormatException("For input string: \"" + s + "\"");
		}
		return negative ? result : -result;
	}

 

© 著作权归作者所有

pczhangtl
粉丝 46
博文 707
码字总数 113318
作品 0
浦东
高级程序员
私信 提问
字符串转成整数

原题   Implement atoi to convert a string to an integer.   Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yours......

一贱书生
2016/12/12
6
0
JAVA【long值与ip地址互转】 - ip的判别

阅读前提: 您需要了解什么是 ip地址 本章目的:实现ip地址和 long类型值的互转 一、应用范围 一般用在登录限制、查找IP所在城市等需求中,windows的ping命令也支持整数形式的IP。 二、关键技...

止静
2014/09/15
3.7K
0
JS中的toFixed,toExponential,toPrecision

toFixed():根据小数点后的指定位数,将数字转换为字符串,它不用指数计数法。 toExponential():根据小数点后指定位数,将数字转化为指数形式字符串。小数点前面只有一位,小数点后面的...

AndyZhouX
2018/07/18
18
0
unix_timestamp和from_unixtime 时间戳函数

时间戳是指格林威治时间 1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数 1.unix_timestamp(); 将时间转化为时间戳。(date 类型数据转换成 timestamp 形式...

ITCHN
2016/11/24
85
0
JavaScript字符串处理方法

导读 这篇文章主要介绍了JavaScript 字符串常用操作的知识,包括字符串截取,查找类的方法,对js字符串操作相关知识感兴趣的朋友一起学习吧 字符串处理方法 1、字符串合并操作:“ + ” var iN...

问题终结者
08/30
16
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
10
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部