将整数字符串转成整数值
来源:互联网 发布:单片机种类 编辑:程序博客网 时间:2024/05/29 08:49
给定一个字符串s,如果字符串符合日常书写的整数形式,并且属于32位整数的范围,返回str所代表的整数值,否则返回0.
比如:
s="123",则返回123.
s="0123",则返回0.
s="-123",则返回-123.
s="-0",返回0.
s="-",返回0.
s="123a4",返回0.
首先,需要判断字符串中是否有非法字符,具体代码如下:
public static boolean isValid(String s){
//第一个既不是负号,也不是数字的情况
if(s.charAt(0)!='-'&&(s.charAt(0)<'0'||s.charAt(0)>'9')){
return false;
}
//第一个是负号,但是整个字符串的长度只有1,或者负号后面跟个0的情况
if(s.charAt(0)=='-'&&(s.length()==1||s.charAt(1)=='0')){
return false;
}
//以0开头,而且整个字符串的长度大约0
if(s.charAt(0)=='0'&&s.length()>1){
return false;
}
//从第二个开始依次遍历字符串,一旦出现不是数字的情况立即返回
for(int i=1;i<s.length();i++){
if(s.charAt(i)<'0'||s.charAt(i)>'9'){
return false;
}
}
return true;
}
接下来进行字符转数字操作,具体代码如下:
public static int fun(String s){
//字符串为空或者字符串的长度为0
if(s==null||s.length()==0)
return 0;
//字符串中存在不合法的字符
if(isValid(s)==false)
return 0;
//接下来处理第一个字符是否为负号的情况。。。。。。。
int num=0;
//以负号开头的情况
if(s.charAt(0)=='-'){
for(int i=1;i<s.length();i++){
num+=s.charAt(i)-'0';
num*=10;
}
num=num*(-1);//最后计算完成后变成负数
}
else{
for(int i=0;i<s.length();i++){
num+=s.charAt(i)-'0';
num*=10;
}
}
return num/10;//最后一次要除以10
}
最后测试输出:
public static void main(String[] args) {
// TODO 自动生成的方法存根
String s="-12340";
//String s="1234"
System.out.println(fun(s));
}
- 将整数字符串转成整数值
- 将整数字符串转成整数值
- 字符串之将整数字符串转成整数值
- 将整数字符串转成整数值 Python版
- 将整数字符串转成整数型
- 将字符串转成整数以及整数转成字符串
- 字符串问题---将整数字符串转成整数型
- 剑指offer-16-将字符串转成整数
- 将整数字符串转成整数值--《程序员代码面试指南》p249
- 字符串转成整数
- 整数转成字符串
- 字符串转成整数
- 字符串转成整数方法
- 字符串反转成整数
- 字符串转成整数
- 实现整数转成字符串
- 字符串转成整数
- 5.5 将整数字符串转为整数值
- 边工作边学的Unix/Linux Shell命令
- static作用(修饰函数、局部变量、全局变量)
- python数据结构学习笔记-2016-11-05-02-优先级队列
- HashMapvs.TreeMap vs. Hashtable vs. LinkedHashMap
- regulator_get
- 将整数字符串转成整数值
- 在MyEclipse2014环境下搭建SpringMVC并实现HelloWorld
- Android中onTouchEvent的返回return super.onTouchEvent(ev);数组越界问题解决方法.。。
- 新约——超越大定理
- iOS常用UI控件
- 求逆序数
- Java Modifier 类
- 51nod-1364 最大字典序排列(线段树)
- 通用项目ViewPager的界面搭建