Newcoder:把字符串转换成整数
题目来源
https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
示例
输入 | 输出 |
---|---|
123 | 123 |
-2147483647 | 2147483647 |
+2147483647 | 2147483647 |
la33 | 0 |
0 |
解题思路
- 分析示例,我们可以知道:
1)输入一个正数,带正负号与否都会输出。
2)输入一个负数,可以输出。
3)输入一个既有空字符,又有字母,还有数字的字符串,不能输出。
2)输入一个空字符,不能输出。 - 题目要求 “不能使用字符串转换整数” ,我们不能再使用
Integer.parseInt(String s)
方法。 - 思路:
String ->char ->int
。但是因为
1)判断是整数:我们用String.toCharArray()
将String ->char[]
。然后每个字符范围在1
~9
之间,就是整数。
2)判断是正数还是负数:是正数输出本身,是负数输出它的相反数。因为整数有+
-
号。所以设置标志位int flag = 0;
,默认是正数
3)输出:因为给String
只能输出int
。创建变量sum
.采用将char[]
的每一位数都和sum相加。然后数左移一位。
实现代码
public class StrToInt {public static void main(String[] args) {System.out.println(StrToInt("-2147483647"));}//str->char->intpublic static int StrToInt(String str) {char[] array = str.toCharArray(); //str->char[]int len = array.length;int symbol = 0; //代表是个正数字符串,用来在最后输出int sum = 0;if (len == 0) { //字符串为空return 0;}if (array[0] == '-') {symbol = 1; //代表是个负数字符串}for (int i = 0; i < len; i++) {if (array[i] == '+' ||array[i] == '-') {continue;} else if (array[i] <'1' || array[i] > '9') {return 0;} else {sum = sum *10 + (array[i] - 48);}}return symbol == 0 ? sum :-sum;}
}
Newcoder:把字符串转换成整数相关推荐
- oracle 转化为整数,字符串转换成整数——从源码学习
字符串转换成整数:输入一个表示整数的字符串,把该字符串转换成整数并输出,例如输入字符串"345",则输出整数345. 在笔试面试中,atoi 即「字符串转换成整数」是一个经典问题了 ...
- 将十六进制的字符串转换成整数
#include "stdafx.h" #include<stdio.h> #include<string.h>/*将大写字母转换成小写字母*/ int t ...
- python 字符串转换成整数
| String to Int 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个 ...
- 程序员面试题精选100题(17)-把字符串转换成整数[算法]
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程 ...
- 判断字符为空_49. 把字符串转换成整数(剑指offer)
49. 把字符串转换成整数 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0. 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输 ...
- 2019-02-26-算法-进化(字符串转换成整数)
题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则 ...
- 在要求输入数字处找到非数字字符_剑指 Offer 67. 把字符串转换成整数 leetcode 剑指offer系列...
点击专辑上方"蓝字"关注我吧 题目难度: 中等 原题链接[1] 今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ ...
- 【Java】 剑指offer(67) 把字符串转换成整数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能 ...
- leetcode —— 面试题67. 把字符串转换成整数
写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到 ...
最新文章
- 我同事说我写代码像写诗
- 再次学习基础爬虫,爬取大学排名。
- sklearn中cross_val_score、cross_val_predict的用法比较
- 《非暴力沟通》- 笔记
- Github热榜--《程序员做饭指南》
- ndoejs优先从缓存加载机制
- DATAGUARD STANDBY 服务器归档日志管理
- 监督学习无监督学习_无监督学习简介
- nssl1254-A(林下风气)【树形dp】
- 吕布机器人唤醒方式能换么_《王者荣耀》推吕布智能机器人,网友:小学生受到1万点暴击伤害...
- buffsize 缓冲区的大小多少合适_对于Redis性能指标监控!你了解多少?
- python基础---文件处理
- 将矩阵化为上三角矩阵
- 边走边拍───南极三岛之行
- fritzing元件太少_Arduino电路设计软件Fritzing
- 在企业工作一年多的几点感悟
- 口胡平衡树splay
- 报错解决——babel-preset-es2015 报错
- 喝酸奶竟然能预防霉菌性阴道炎
- Uboot SPL的Boot模式选择(从MMC切换到SPI启动)
热门文章
- uniapp自定义tabbar(支持中间凸起,角标,动态隐藏tab,全端适用)
- spring boot实现ssm(1)功能
- hitchhiker_Hitchhiker的现代Android开发指南:陷阱和隐密错误
- 关于vm虚拟机虚拟网络已禁用
- 面具卡米怎么删模块_红米K20Pro/尊享版开启双扬声器-面具模块-享受更立体的声音...
- hiding java_Overriding vs Hiding Java - Confused
- RadeonSoftware.exe CPU占用过高解决方案
- Jackson忽略类的属性字段
- dcat-admin 全局隐藏查看
- python计算小数_python执行精确的小数计算方法