题目来源

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:把字符串转换成整数相关推荐

  1. oracle 转化为整数,字符串转换成整数——从源码学习

    字符串转换成整数:输入一个表示整数的字符串,把该字符串转换成整数并输出,例如输入字符串"345",则输出整数345. 在笔试面试中,atoi 即「字符串转换成整数」是一个经典问题了 ...

  2. 将十六进制的字符串转换成整数

    #include "stdafx.h" #include<stdio.h> #include<string.h>/*将大写字母转换成小写字母*/ int t ...

  3. python 字符串转换成整数

    | String to Int 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个 ...

  4. 程序员面试题精选100题(17)-把字符串转换成整数[算法]

    题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程 ...

  5. 判断字符为空_49. 把字符串转换成整数(剑指offer)

    49. 把字符串转换成整数 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0. 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输 ...

  6. 2019-02-26-算法-进化(字符串转换成整数)

    题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则 ...

  7. 在要求输入数字处找到非数字字符_剑指 Offer 67. 把字符串转换成整数 leetcode 剑指offer系列...

    点击专辑上方"蓝字"关注我吧 题目难度: 中等 原题链接[1] 今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ ...

  8. 【Java】 剑指offer(67) 把字符串转换成整数

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能 ...

  9. leetcode —— 面试题67. 把字符串转换成整数

    写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到 ...

最新文章

  1. 我同事说我写代码像写诗
  2. 再次学习基础爬虫,爬取大学排名。
  3. sklearn中cross_val_score、cross_val_predict的用法比较
  4. 《非暴力沟通》- 笔记
  5. Github热榜--《程序员做饭指南》
  6. ndoejs优先从缓存加载机制
  7. DATAGUARD STANDBY 服务器归档日志管理
  8. 监督学习无监督学习_无监督学习简介
  9. nssl1254-A(林下风气)【树形dp】
  10. 吕布机器人唤醒方式能换么_《王者荣耀》推吕布智能机器人,网友:小学生受到1万点暴击伤害...
  11. buffsize 缓冲区的大小多少合适_对于Redis性能指标监控!你了解多少?
  12. python基础---文件处理
  13. 将矩阵化为上三角矩阵
  14. 边走边拍───南极三岛之行
  15. fritzing元件太少_Arduino电路设计软件Fritzing
  16. 在企业工作一年多的几点感悟
  17. 口胡平衡树splay
  18. 报错解决——babel-preset-es2015 报错
  19. 喝酸奶竟然能预防霉菌性阴道炎
  20. Uboot SPL的Boot模式选择(从MMC切换到SPI启动)

热门文章

  1. uniapp自定义tabbar(支持中间凸起,角标,动态隐藏tab,全端适用)
  2. spring boot实现ssm(1)功能
  3. hitchhiker_Hitchhiker的现代Android开发指南:陷阱和隐密错误
  4. 关于vm虚拟机虚拟网络已禁用
  5. 面具卡米怎么删模块_红米K20Pro/尊享版开启双扬声器-面具模块-享受更立体的声音...
  6. hiding java_Overriding vs Hiding Java - Confused
  7. RadeonSoftware.exe CPU占用过高解决方案
  8. Jackson忽略类的属性字段
  9. dcat-admin 全局隐藏查看
  10. python计算小数_python执行精确的小数计算方法